利用runloop的特性
BOOL _reloadFinished = NO;
[tableView reload]; //这里会自动设置tableView layoutIfNeeded为YES,意味着将会在runloop结束时重绘tableView,并将重绘任务提交到主队列
dispatch_async(dispatch_get_main_queue(),^{
_reloadFinished = YES;//由于mainQueue是串行的,执行到这里说明上一个提交到mainQueue的task已经完成了(即tableView重绘)
});
BOOL _reloadFinished = NO;
[tableView reload]; //这里会自动设置tableView layoutIfNeeded为YES,意味着将会在runloop结束时重绘tableView,并将重绘任务提交到主队列
dispatch_async(dispatch_get_main_queue(),^{
_reloadFinished = YES;//由于mainQueue是串行的,执行到这里说明上一个提交到mainQueue的task已经完成了(即tableView重绘)
});
本文介绍如何使用RunLoop特性实现UITableView的高效重绘。通过设置_reloadFinished标志并利用dispatch_async与mainQueue来确保重绘任务完成后才更新状态,避免UI线程阻塞。
1277

被折叠的 条评论
为什么被折叠?



