UITableView判断reloadData结束
2017-11-05 17:45
429 查看
转自http://blog.csdn.net/cuibo1123/article/details/48558213
如果在reloadDate后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。
reloadDate并不会等待tableview更新结束后才返回,而是立即返回,然后去计算表高度,获取cell等。
如果表中的数据非常大,在一个run loop周期没执行完,这时,需要tableview视图数据的操作就会出问题了。
apple并没有直接提供reloadData的api,想要程序延迟到reloadData结束在操作,可以用以下方法
方法1:
[objc] view
plain copy
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
//刷新完成
layoutIfNeeded会强制重绘并等待完成。
方法2:
[objc] view
plain copy
[self.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
//刷新完成
});
reloadDate会在主队列执行,而dispatch_get_main_queue会等待机会,直到主队列空闲才执行。
如果在reloadDate后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。
reloadDate并不会等待tableview更新结束后才返回,而是立即返回,然后去计算表高度,获取cell等。
如果表中的数据非常大,在一个run loop周期没执行完,这时,需要tableview视图数据的操作就会出问题了。
apple并没有直接提供reloadData的api,想要程序延迟到reloadData结束在操作,可以用以下方法
方法1:
[objc] view
plain copy
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
//刷新完成
layoutIfNeeded会强制重绘并等待完成。
方法2:
[objc] view
plain copy
[self.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
//刷新完成
});
reloadDate会在主队列执行,而dispatch_get_main_queue会等待机会,直到主队列空闲才执行。
相关文章推荐
- UITableView判断reloadData的状态(是否结束)
- UITableView判断reloadData加载数据已经结束
- UITableView判断reloadData结束(iOS)
- iOS开发:UITableView判断reloadData结束
- UITableView判断reloadData结束(iOS)
- 判断UitableView reloadData 结束的方法
- iOS UITableView reloadData 刷新结束后执行后续操作
- UITableView reloadData结束之后
- UITableVIew UICollectionView reloadData 结束后执行layoutIfNeeded
- 如何在UITableView reloadData结束后再进行下一步操作
- 实现UITableView的reloadData完成之后做一些操作
- UITableView的reloadData方法,不执行cellForRow方法,
- 如何检测tableview reloaddata结束【ios】
- iOS UITableView reloadData 视图漂移或者闪动解决方法
- uitableview使用reloaddata不管用
- iOS11 UITableView reloadData 界面跳动问题
- UITableview reloadData偶尔出现崩溃
- UITableView reloadData 无效一例
- IOS UITableView reloadData not respone!
- UITableview reloadData Animation 动画效果