翻转UICollectionViewCell会导致其他单元格翻转

时间:2014-12-07 21:06:13

标签: ios objective-c xcode

我正在使用以下动画来翻转UICollectionViewCell以显示确认视图"在背面"细胞:

[UIView transitionFromView:cell.cellContentWrap
                    toView:cell.confirmationView
                  duration:1.0
                   options:UIViewAnimationOptionTransitionFlipFromRight
                completion:^(BOOL finished){
 }
 ];

当我完成后,我注意到集合视图中的每8个单元格也都显示了确认视图。心灵狂欢。关于为什么会这样的想法?我尝试在集合视图上调用reloadData,并为该单元格重新调整ItemItIndexPaths ...我对UICollectionViews / UICollectionViewCells和/或它们相应的动画有什么遗漏?

1 个答案:

答案 0 :(得分:3)

我对集合视图的工作并不多,但它们使用与表视图相同的单元重用设计。

当收集单元格在屏幕外滚动时,它会被放入重用队列中供以后使用。然后,当系统需要一个新的集合视图单元时,如果有一个可用,它会从重用队列中抽出一个并使用它而不是创建一个新的。

如果您已经使用单元格的视图层次结构,那么这些更改将会持续存在。每当该单元格是从重用队列中拉出的单元格时,它就会切换它的视图。

在您的collectionView:cellForItemAtIndexPath:方法中,致电后 dequeueReusableCellWithReuseIdentifier:forIndexPath:,你应该强制它的视图层次结构恢复到默认状态(切换子视图,所以显示单元格的cellContentWrap视图而不是它的confirmView,但没有动画)。