重新加载数据时的 UICollectionView 奇怪的动画(幽灵单元、flash)

Posted

技术标签:

【中文标题】重新加载数据时的 UICollectionView 奇怪的动画(幽灵单元、flash)【英文标题】:UICollectionView weird animation (ghost cell, flash) on reload data 【发布时间】:2019-10-04 14:21:24 【问题描述】:

您好,正如您在下面的video link 中看到的那样,当我重新加载数据时,一帧发生了一些事情,一些幽灵单元出现和消失,就像一个奇怪的动画......是因为使用了可重复使用的单元吗?如果是,它是否可以预防,因为它不是那么漂亮,并且使用 CATransition 动画似乎会导致一些丢帧(视频中未显示)。任何帮助将不胜感激。

Google Drive Link

Video Youtube Link

* 编辑 *

该视频似乎没有被谷歌驱动器处理,抱歉,您必须先下载它才能观看。

为方便起见添加了Youtube link

【问题讨论】:

还不知道反对票是怎么回事... 【参考方案1】:

好的,感谢所有不必要的反对,我自己找到了答案:

第一个解决方案是使用 collectionView.reloadItems(at: collectionView.indexPathsForVisibleItems) 但这仍然会导致一些问题和闪烁的东西。

其他人说在那之后使用layoutIfNeeded(),但这并没有帮助。

我找到的解决方案是使用func reloadSections(_ sections: IndexSet)

所以当我使用collectionView.reloadSections(IndexSet(integer:0))(在我的情况下是第一部分)时,动画会流畅而完美。

【讨论】:

以上是关于重新加载数据时的 UICollectionView 奇怪的动画(幽灵单元、flash)的主要内容,如果未能解决你的问题,请参考以下文章

在Swift中加载UICollectionView时的加载器/微调器

UICollectionView如何从委托中重新加载数据

UICollectionView 重新加载数据不会更新单元格

在 UICollectionView 中重新加载数据的正确方法是啥?

UICollectionView 不重新加载数据

UICollectionView 上的自定义动画重新加载数据