正确监听UICollectionView的reloadData完成状态

由于UICollectionView刷新数据一定是在主线程中完成的,也就是在主线程Runloop的某个周期内完成的,而主线程只有一个串行事件队列(DispatchQueue.main),因此可以想到将后续的任务添加到main queue中,从而串行的执行reloadData -> ... -> 某个任务。至此就可以达到监听reloadData的完成状态。形式可以如下几种方法:

1、方法一

collectionView.reloadData()
DispatchQueue.main.async {
     // TODO: 某个任务
}

2、方法二

collectionView.reloadData()
collectionView.performBatchUpdates(nil) { (_) in
     // TODO: 某个任务
}

ps: UITableView的处理方式类似,不过方法二的处理只能iOS 11.0后才能使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容