2012-03-16 99 views
0

我有一个tableView,每行有四个图,大约20行。 当我尝试滚动表格时,我将移除现有图形并为每一行建立新图形。滚动UITableView缓慢

此操作使表格视图的滚动非常缓慢。 任何想法,使滚动更快,以及加载新的图形。

+0

您的数据是否在滚动期间发生变化? – 2012-03-16 11:37:31

+0

是的,每行的数据都不相同。 – user676446 2012-03-16 12:04:03

+0

我的意思是数据是否更新为同一个单元格(如果是这种情况,你真的需要重绘图表)? – 2012-03-16 12:08:41

回答

1

创建新视图是一项昂贵的操作。这就是为什么最好重用它们。您可以通过将现有视图“出列”来回收。

此外看一看Table View Programming Guide for iOS

具体而言,看覆盖优化技术,例如参见“子类的UITableViewCell”

只在适当的时候绘制整个单元格。您的子类 UITableViewCell可以在其drawRect:方法中绘制其所有内容, 但您应该意识到此方法的潜在缺陷。 自定义绘图适用于单元格的图层,该图层可以被放置在其上的任何视图遮挡。例如,在组合的 样式的表视图中,背景视图(backgroundView属性)遮盖了在drawRect:中执行的任何 绘图。蓝色选择背景 也会遮盖任何图形。此外,在 动画中发生的自定义绘图(例如当表格视图进入和退出编辑模式时) 大幅降低了性能。

慢表滚动是一个常见问题,所以你可以在Stack Overflow上找到很多类似的问题。

要考虑的另一件事是您的提供数据的方法可能是瓶颈。仪器将能够帮助您确定问题。