为 collectionview 链接 performBatchUpdates

Posted

技术标签:

【中文标题】为 collectionview 链接 performBatchUpdates【英文标题】:chaining performBatchUpdates for collectionview 【发布时间】:2017-04-10 01:40:40 【问题描述】:

链接performBatchUpdate 调用UICollectionView 的正确方法是什么,这样一个更新在下一个更新开始之前完成,以防止同时触发多个,从而导致 IndexPaths 不同步(由于删除混合在插入)

【问题讨论】:

【参考方案1】:

我不太确定您在这里寻找什么。如果您的意思是在执行performBatchUpdate 时如何确保多个线程不会相互覆盖,您应该确保所有对performBatchUpdate 的调用都在主线程上调用。例如:

DispatchQueue.main.async 
    collectionView.performBatchUpdates(
        // perform a bunch of updates.
    , completion:  (finished: Bool) in 
        // anything that needs to happen after the update is completed.
    

或者,如果您正在寻找一种在同一线程中多次调用 performBatchUpdates 的方法(是的,您需要这个有点奇怪,但我有一个地方需要,因为第三我正在使用的派对 API),因为 performBatchUpdates 有一个完成,您可以尝试将第二个 performBatchUpdates 调用放在第一个的完成处理程序中。

    self.collectionView.performBatchUpdates(
        // perform a bunch of updates.
    , completion:  (finished: Bool) in
        self.collectionView.performBatchUpdates(
            // perform a bunch of other updates.
        , completion:  (finished: Bool) in
        )
    )

【讨论】:

请问,您是否遇到过未调用完成处理程序的情况 - ***.com/questions/68413796/…?谢谢。

以上是关于为 collectionview 链接 performBatchUpdates的主要内容,如果未能解决你的问题,请参考以下文章

怎样在collectionView头部添加轮播图,要求能随collectionView滚动

带有collectionview的自定义菜单栏

如何在 CollectionView 中创建此布局

为collectionView正确关闭键盘

为 CollectionView [Swift] 的单独 Cell 设置圆形标签

在 Swift 中以编程方式为 CollectionView 设置插图