如何在没有动画的情况下从集合视图中删除项目?

Hex*_*omb 4 ios uicollectionview uicollectionviewlayout

我有一个支持集合视图的项目 ID 数组。当用户滚动浏览集合视图时,每个单元格都会获取该 ID 的对象,然后获取与该对象关联的图像。如果一个对象碰巧没有与之关联的图像,我想从数组中删除该项目 ID,然后更新屏幕上的集合视图。问题是有很多没有图像的对象(大量更新),我需要立即更新集合视图(没有时间动画)。

使用reloadData会导致集合视图在删除每个对象时闪烁。使用deleteItemsAtIndexPaths需要动画,这是不希望的。有什么方法可以从集合视图中删除项目而不使用动画吗reloadData?

Sko*_*oua 5

这是 Swift 5 版本,其实现方式略有不同:

UIView.performWithoutAnimation {
    self.collectionView.performBatchUpdates({
        self.collectionView.insertItems(at: indexPaths)
    }, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)