UITableView判断reloadData结束(iOS)

原创 2015年09月18日 23:46:45

如果在reloadDate后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。

reloadDate并不会等待tableview更新结束后才返回,而是立即返回,然后去计算表高度,获取cell等。

如果表中的数据非常大,在一个run loop周期没执行完,这时,需要tableview视图数据的操作就会出问题了。


apple并没有直接提供reloadData的api,想要程序延迟到reloadData结束在操作,可以用以下方法


方法1:

[self.tableView reloadData];
[self.tableView layoutIfNeeded];
//刷新完成


layoutIfNeeded会强制重绘并等待完成。


方法2:

[self.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
    //刷新完成
});

reloadDate会在主队列执行,而dispatch_get_main_queue会等待机会,直到主队列空闲才执行。



版权声明:本文为博主原创文章,未经博主允许不得转载。博主微信:lofocus https://blog.csdn.net/cuibo1123/article/details/48558213

ios tableView reload不是异步

我忘了之前碰到过什么问题,一直以为reload是异步的,当需要在reload后立即执行操作是会报错的! 现在发现这个想法是错误的!        reload是同步的,在后面执行tableView...
  • gaoyuqiang30
  • gaoyuqiang30
  • 2016年03月04日 18:42
  • 261

获取tableView刷新完成状态

最近有个需求,需要获取tableView的刷新完成状态去做一些事情,找了好多方法,最终在http://stackoverflow.com/questions/16071503/how-to-tell-...
  • axllll
  • axllll
  • 2015年12月04日 10:31
  • 5044

判断UitableView reloadData 结束的方法

在开发过程中会有一些特殊处理的情况,最近开发就遇到了这样的问题,需要reloadData执行完了,才可以执行一些操作, 方法1: 是同步方法layoutIfNeeded会强制重绘并等待完成: [...
  • shangshang1029
  • shangshang1029
  • 2016年07月20日 16:38
  • 2377

iOS开发UITableView篇:[self.tableView reloadData]执行时间过长问题解决历程

TableView数据刷新非常慢问题 出现问题原因: 网络问题? 处理数据时间过长? Cell赋值时有耗时操作? 分析 网络问题排除 通过打印,数据请求已经完毕 处理数据时间过长问题排除 处理前打...
  • Yj_sail
  • Yj_sail
  • 2017年10月20日 20:34
  • 390

iOS UITableView reloadData问题总结

iOS UITableView reloadData 方法 无效,或者不执行,导致 TableView 不刷新 原因。 转载 http://www.cnblogs.com/zxykit/p/5664...
  • sinat_32425447
  • sinat_32425447
  • 2017年06月29日 10:51
  • 2137

如何在UITableView reloadData结束后再进行下一步操作

最近在做一个小需求的时候碰了壁,具体情景是:点击一个talbeview的headerview会展开该section下面的cell,需求是要先reload原有的数据,再将新的cell以insert的方式...
  • lxlover314
  • lxlover314
  • 2014年12月29日 11:24
  • 1067

执行到reloadData()方法会立刻返回,不会等到刷新完成才返回

UITableView和UICollectionView都有reloadData方法。如题,可以理解为reloadData()方法是一个异步的方法,非同步执行完成其内部的代码。执行到collectio...
  • littleFish_ZYY
  • littleFish_ZYY
  • 2018年02月28日 17:33
  • 26

实现UITableView的reloadData完成之后做一些操作

要想实现在reload之后弹出alertView,或者滚动到特定一行, 也许你会这么写[_tableView reloadData]; [_tableView scrollToRowAtIndexP...
  • yinyignfenlei
  • yinyignfenlei
  • 2016年11月29日 11:38
  • 2600

UITableView——reloadData与reloadSection性能比较

周五上午,测试,有个很奇怪的bug:每次reset模拟器后,第一次进入个人资料界面,首诊记录数据展示不对,第二次进入数据展示都是正确的。这个患者其实有首诊记录,但当时查看代码很久,一直没找到问题所在。...
  • iosswift
  • iosswift
  • 2015年11月25日 19:54
  • 17685

解决CollectionView reloadData或者reloadSections时的刷新的闪烁问题

[UIView performWithoutAnimation:^{ [self.collectionView reloadSections:[NSIndex...
  • YLGWHYH
  • YLGWHYH
  • 2016年12月21日 23:47
  • 9706
收藏助手
不良信息举报
您举报文章:UITableView判断reloadData结束(iOS)
举报原因:
原因补充:

(最多只允许输入30个字)