关于TableView的reloadData方法异步执行
2018-04-18 本文已影响5人
DonfexCui
有时候想在TableView reloadData之后做一些操作,但是又依赖于reloadData之后的一些状态,那么就可能有问题了,因为reloadData内部是异步执行但是又没有执行完成的回调,这个就比较坑了,目前有两种解决办法,如下,如果有更好的解决方案请一起交流,谢谢。
1.通过layoutIfNeeded方法,强制重绘并等待完成。
[self.tableView reloadData];
[self.tableView layoutIfNeeded];
//然后执行后续代码
2.reloadData方法会在主线程执行,通过GCD,使后续操作排队在reloadData后面执行。
[self.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
//然后执行后续代码
});