IOS - reloadData有多贵?

时间:2012-09-13 23:03:58

标签: ios performance tableview reloaddata

我想知道tableView上的reloadData是多么昂贵。我想每5秒刷新一次tableview。这会导致任何性能问题吗?

3 个答案:

答案 0 :(得分:5)

重新加载数据会调用表格视图数据源numberOfRowsInSection上的两个主要方法,然后针对所需的可见单元格迭代cellForRow:atIndexPath:,具体取决于您的tableView的contentOffset

如果你的应用已经很好地滚动,那么你的应用程序唯一会遇到的性能影响就是你在numberOfRowsInSection做了很多工作(比如点击网络或者耗费时间)。

编辑如上所述,如果您使用heightForRow:atIndexPath:对不同高度的单元格进行复杂计算,{{1}}也可能是一个难点。

答案 1 :(得分:0)

除了@Jessedc回答,

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

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

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

答案 2 :(得分:0)

如果适用于您的情况,NSFetchedResultsController可以在数据更改时通知您的表视图,而不是每隔“n”秒刷新一次。