更新数据源时UICollectionView的闪烁问题

时间:2016-03-24 07:03:32

标签: ios objective-c uicollectionview

每当我有机会研究UICollectionView的行为时,我就会在我的应用程序(来自远程源的照片加载集合)上来回调查UICollectionView闪烁问题。我以为UICollectionView重用以前在相同位置使用的单元格(即如果在行上加载照片:0部分:0,然后调用[collectionView reloadData],则之前在位置行使用的单元格:0部分:0被重用于该位置。如果是这样,因为该位置的图像已经可见并且它不应该在同一位置重新渲染。但是当我仔细研究它时,我发现UICollectionView选择了单元格的内存地址与之前使用的内存地址不同。我相信它会在[collectionView reloadData]发生时导致闪烁影响。我认为如果UICollectionView重新使用之前在该位置使用的相同对象,则应该匹配单元格对象的内存地址。是我的理解关于UICollectionView是否正确?如果没有,我会感谢任何建议。谢谢!

1 个答案:

答案 0 :(得分:0)

解决了这个问题

collectionView?.performBatchUpdates(nil, completion: nil)

之后

collectionView?.reloadData()

因此集合视图同步更新,没有闪烁