如何提高UITableVIew的性能?

时间:2011-07-29 18:40:43

标签: iphone ios multithreading xcode cocoa-touch

我有一个具有表视图的多线程应用程序。它在后台的不同线程上进行数据收集。问题是,当用户滚动表格时,数据收集速度减慢了75%。并且有很多数据要收集,所以如果可能的话,我想让表格滚动将数据收集速度降低不超过15%。

当用户将手指从屏幕上移开时,是否有一种方法可以重新绘制TableView?不要担心用户体验,让我担心。如果你有任何可以加速的想法,我想听听它们。

2 个答案:

答案 0 :(得分:0)

当用户拖动时,您可以尝试从dequeueReusableCellWithIdentifier返回nil。您可以通过调用self.tableView.draggingself.tableView.trackingself.viewTable.decelerating来检查用户是否这样做(这可以确定拖动或曲目何时即将结束)。

答案 1 :(得分:0)

听起来你的瓶颈就是背景中的“数据收集”,所以你可能会考虑攻击它。在显示表视图控制器之前,您可以尝试预先获取大量数据并将其缓存在内存中。

如果特别复杂的话,您也可以尝试重新绘制单元格的一部分(例如,只显示文本而不是任何图像)。对于昂贵的操作,你可以执行延迟为0的选择器,这将把它扔到运行循环的下一个迭代(好的策略)。

你能想到的最好的事情就是使用Time Profiler运行仪器并攻击吸收最多CPU的东西。