6

我想知道 tableView 上的 reloadData 有多贵。我想每 5 秒刷新一次表格视图。这会导致任何性能问题吗?

4

3 回答 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 的回答,

如果所有行的高度相同,则heightForRowAtIndexPathtableview.rowHeight.

如果每行有很多不同高度的行,并且每次heightForRowAtIndexPath调用该方法时都在计算行的高度,那么它的成本会更高。

决定电话的费用有很多因素reloadData。一切都取决于每次调用委托方法时你做了什么以及做了多少。

于 2012-09-13T23:29:07.810 回答