【问题标题】:The best way to update multiple cells in a collection view?在集合视图中更新多个单元格的最佳方法?
【发布时间】:2020-02-28 06:22:28
【问题描述】:

我有一个带有显示多个单元格的流布局的集合视图。每个单元格在显示图像和一些文本之前都会发生一些异步加载。连续更新这些单元格的最佳方法是什么?

我正在做这样的事情,但我注意到如果多个单元格同时完成,我的集合视图会冻结一秒钟左右。

dispatch_async(dispatch_get_main_queue(), ^{
    [collectionView reloadItemsAtIndexPaths:@[indexPath]];
});

【问题讨论】:

  • 再添加一些代码,CollectionViewCell类代码
  • 这可能是因为您在加载主线程上的每个单元格/行的代码中做了一些不平凡的事情。在代码花费时间的地方使用 Xcode 分析工具和配置文件;罪魁祸首应该很明显了。

标签: ios objective-c uicollectionview grand-central-dispatch


【解决方案1】:

添加更多代码会很好,但实际上最好用performBatchUpdates 做这种事情,而不是在主线程中做。

- (void)performBatchUpdates:(void (^)(void))updates completion:(void (^)(BOOL finished))completion;

Here is the documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-16
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多