为什么UITableView在行数较大时需要更多时间加载? viewDidLoad和第一个cellForRowAtIndexPath函数调用之间需要花费时间的是什么?
当numberOfRows返回100,000时,这些是日志语句(注意时间(5秒延迟)):
2014-02-05 20:51:22.806 TableViewTest[3995:60b] View Did Load
2014-02-05 20:51:27.526 TableViewTest[3995:60b] Cell for row at indexpath.row: 0
当numberOfRows返回10,000时,这些是日志语句(注意时间(1秒延迟)):
2014-02-05 20:54:50.793 TableViewTest[4007:60b] View Did Load
2014-02-05 20:54:51.846 TableViewTest[4007:60b] Cell for row at indexpath.row: 0
答案 0 :(得分:0)
如果你在表格视图中实现heightForRowAtIndexPath:
,那么iOS会检查每个单元格的高度,我想绘制滚动条。因此,如果可能的话,尽快拨打电话是值得的。
如果你支持iOS 7,那么考虑实现tableView: estimatedHeightForRowAtIndexPath:
,它可以返回一个常量(或者可能非常快的逻辑)来猜测高度。这将在调用heightForRowAtIndexPath:
时延迟,直到实际查看单元格之前,并且应该加快速度。