IOS开发者学习笔记

关于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(), ^{ 

    //然后执行后续代码

});

上一篇下一篇

猜你喜欢

热点阅读