我想知道 tableView 上的 reloadData 有多贵。我想每 5 秒刷新一次表格视图。这会导致任何性能问题吗?
问问题
1540 次
3 回答
5
重新加载数据将调用您的表格视图数据源上的两个主要方法,numberOfRowsInSection
然后根据您的表格视图迭代cellForRow:atIndexPath:
所需的可见单元格contentOffset
如果您的应用程序已经很好地滚动,那么您的应用程序将承受的唯一性能损失是您是否正在做大量工作numberOfRowsInSection
(例如访问网络或一些耗时的事情)。
编辑:如前所述,heightForRow:atIndexPath:
如果您使用它对不同高度的单元格进行复杂计算,也可能是一个痛点。
于 2012-09-13T23:10:12.960 回答
0
如果适用于您的情况,NSFetchedResultsController 可以在数据更改时通知您的表视图,而不是每“n”秒刷新一次。
于 2012-11-13T21:54:02.003 回答
0
除了@Jessedc 的回答,
如果所有行的高度相同,则heightForRowAtIndexPath
比tableview.rowHeight
.
如果每行有很多不同高度的行,并且每次heightForRowAtIndexPath
调用该方法时都在计算行的高度,那么它的成本会更高。
决定电话的费用有很多因素reloadData
。一切都取决于每次调用委托方法时你做了什么以及做了多少。
于 2012-09-13T23:29:07.810 回答