随时更改集合视图数据源

时间:2016-02-02 14:38:42

标签: swift performance uicollectionview xcode-instruments

我有一个集合视图,项目数量逐渐增加。最初可能会显示100个项目。然后,基于选择一个,我想在最后一个当前可见项目之后插入项目。我还想刷新已经添加的内容,但我还没有看到。

performBatchUpdates执行我需要它执行的操作,但如果您快速选择/取消选择多个项目,则会逐渐降低性能。

这是我到目前为止在每个细胞分析中所拥有的:

performBatchUpdates({ () -> Void in
    collectionView.reloadItemsAtIndexPaths(reloadIndexPaths)
    collectionView.insertItemsAtIndexPaths(insertIndexPaths)
}, completion: { (completed: Bool) -> Void in

对于我可以采取哪些措施来平滑性能?仪器验证了我的假设,即这是一个值得关注的领域。

1 个答案:

答案 0 :(得分:0)

尝试这样做async

 dispatch_async(dispatch_get_main_queue()) { () in
         performBatchUpdates({ () -> Void in
           collectionView.reloadItemsAtIndexPaths(reloadIndexPaths)
           collectionView.insertItemsAtIndexPaths(insertIndexPaths)
          }, completion: { (completed: Bool) -> Void in
          ...
      }