遍历 UICollectionView 中的所有单元格
Posted
技术标签:
【中文标题】遍历 UICollectionView 中的所有单元格【英文标题】:Looping through all cells in UICollectionView 【发布时间】:2013-04-05 09:33:03 【问题描述】:我有一个UICollectionView
,我想为每个单元格添加动画。
目前我正在使用
for(UICollectionView *cell in collectionView.visibleCells)
//add animation to cell here
但这只会将动画应用于可见单元格,一旦我向下滚动并且单元格不再可见,动画就会停止。
如何循环遍历UICollectionView
中的所有单元格?
【问题讨论】:
我正在尝试实现类似的目标。但我在可见单元格中得到零个项目。这个数组在什么时候被填充? 【参考方案1】:我可能会以不同的方式解决这个问题。如果你想让单元格动画,你可以设置一个属性shouldAnimate = YES
。然后在您的collectionView:cellForItemAtIndexPath:
中检查该属性并在需要时应用动画(或删除它)。
设置属性后,只重新加载visibleCells:[collectionView reloadItemsAtIndexPaths:collectionView.indexPathsForVisibleItems]
。
现在,由于动画是在通过数据源协议请求单元格时提供的,因此您也可以在滚动时获得动画。
【讨论】:
哇,这太棒了,而且效果很好,非常感谢 :) 嗨,一个(愚蠢的)问题。 reloadItemsAtIndexPaths 是否在检查属性后进入同一个 collectionView:cellForItemAtIndexPath: ? 不,例如,将它放在处理程序中以进行按钮按下。将它放在collectionView:cellForItemAtIndexPath:
中会将您的代码置于循环中。不推荐。
为了清楚起见,您需要在集合中用作集合视图数据源的对象上设置属性。以上是关于遍历 UICollectionView 中的所有单元格的主要内容,如果未能解决你的问题,请参考以下文章
将 UICollectionView 部分中的所有项目替换为一项(组合单元格)
为 UICollectionView 中的所有 UICollectionViewCell 设置动画