我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
如果用户选择了该单元格,则一个子视图用于图像,另一个子视图用于覆盖。
当我处于编辑模式时,用户可以选择单元格。当某些细胞被选择并且该用户退出编辑模式,我的设定alpha
与动画叠加图像视图的值,以0.0
在被覆盖的setSelected:
方法。
问题是,当我reloadData
在集合视图上调用该方法时,所选单元格中的覆盖图像视图会隐藏而没有动画,但是在其他单元格中,覆盖图像视图会在没有动画的情况下显示,并在正确的动画下消失。
通话时,我检测到照片的图像视图也在改变reloadData
。
这个问题有什么解决办法吗?
听起来您的细胞正在回收中。在您的单元格中prepareForReuse
,确保要移除覆盖层。然后在中适当添加叠加层collectionView: cellForItemAtIndexPath:
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句