내 프로젝트 중 하나에서 UICollectionView
을 사용하고 있으며 콜렉션 뷰에서 reloadData
을 호출하려고하면 셀 순서가 항상 동일하게 변경됩니다.
는 그와 같은 세포 뭔가를 만들 :UICollectionView reloadData가 셀 순서를 변경합니다.
- (UICollectionViewCell *)collectionView:(UICollectionView *)aCollectionView
cellForItemAtIndexPath:(NSIndexPath *)aIndexPath {
PPhotoCVCell *cell =
[self._collectionView dequeueReusableCellWithReuseIdentifier:@"PPhotoCVCell"
forIndexPath:aIndexPath];
if (cell.photo == nil) {
PPhoto *photo = self._photos[aIndexPath.row];
cell.photo = photo;
}
cell.enableEditing = self._editing;
cell.layer.shouldRasterize = YES;
cell.layer.rasterizationScale = [UIScreen mainScreen].scale;
return cell;
}
셀이 사용자에 의해 선택되는 경우 셀이 오버레이 클래스 UIImageView
, 이미지에 대한 하나의 다른 두 파단이있다.
편집 모드에있을 때 사용자는 셀을 선택할 수 있습니다. 일부 셀을 선택하고 사용자가 편집 모드를 종료하면 덮어 쓰기 된 setSelected:
메서드에서 애니메이션이 포함 된 오버레이 이미지보기의 alpha
값을 0.0
으로 설정합니다.
컬렉션보기에서 reloadData
메서드를 호출하면 선택한 셀의 오버레이 이미지보기가 애니메이션없이 숨겨 지지만 다른 셀 오버레이 이미지 뷰는 애니메이션없이 표시되고 올바른 애니메이션으로 사라집니다.
reloadData
을 호출하면 사진의 이미지보기도 변경되는 것으로 나타났습니다.
이 문제에 대한 해결책이 있습니까?
안녕하세요. 정확하게 문제에 직면했는지 확인하십시오. – Javid