我想知道tableView上的reloadData有多贵.我想每隔5秒刷新一次表视图。这会导致任何性能问题吗?
发布于 2012-09-14 07:10:13
重载数据将调用表视图数据源numberOfRowsInSection上的两个主要方法,然后根据tableView的contentOffset在cellForRow:atIndexPath:上迭代所需的可视单元格
如果你的应用已经可以很好地滚动了,那么你的应用能够承受的唯一性能损失就是你在numberOfRowsInSection中做了很多工作(比如访问网络或者一些耗时的事情)。
编辑:如前所述,如果你使用heightForRow:atIndexPath:为不同高度的单元格进行复杂的计算,它也可能是一个痛点。
发布于 2012-09-14 07:29:08
除了@Jessedc回答之外,
如果所有行的高度都相同,那么heightForRowAtIndexPath比tableview.rowHeight更昂贵。
如果您有许多行,每行的高度各不相同,并且每次调用heightForRowAtIndexPath方法时都要计算行的高度,那么它的开销就更大了。
决定reloadData调用的代价有很多因素。每件事都取决于每次调用委托方法时你做了什么和做了多少。
发布于 2012-11-14 05:54:02
如果适用于您的情况,NSFetchedResultsController可以在数据更改时通知您的表视图,而不是每"n“秒刷新一次。
https://stackoverflow.com/questions/12416032
复制相似问题