UITableView insertRowsAtIndexPaths:WithRowAnimation不冻结用户界面

我试图了解什么是最好的做法,当我使用UITableView与大量的行插入时,表是可见的。

这是我的行为:

我有一个UITableView和一个线程,试图插入一个数据到这个表中。 我认为做一个[UITableView reloadData]是性能方面的一个糟糕的解决scheme,我知道UIKit操作是在主线程进行,因此,当数据源更新完成时,我试图发送一个NSNotification使UITableView更新操作(beginUpdate – insertRowAtIndex – endUpdate)在主线程上,但是这种技术冻结了用户界面。 我必须使用1000+以上的行数。

有人已经解决了这个问题? 是否可以使用GDCasynchronous和同步? 如果是的话,怎么样? 提前致谢。

你是否这样尝试:

 dispatch_async(dispatch_get_main_queue(), ^{ [self.tableView beginUpdates]; [self.tableDatalist insertObject:obj atIndex:index]; [self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:index inSection:0]] withRowAnimation:UITableViewRowAnimationRight]; [self.tableView endUpdates]; });