UITableView/UIScrollView 滚动优化/性能



我正在开发一个iPad应用程序,上面有一个非常大的UITableView(大约10倍的屏幕宽度和高度),上面是一个UIScrollView,我可以水平滚动。

在每个UITableViewCell中,我添加了不同数量的UIViews。我的问题是滚动性能真的很差。所以我在谷歌上搜索了一个解决方案,但没有找到任何适合我的问题的东西。

我认为问题是滚动完成后整个屏幕都会重新绘制,但我不知道如何限制这一点......

任何人都可以提供解决方案吗?

谢谢。

您需要保持单元格的可重用性,并且仅加载可见区域中所需的视图。就像我们延迟加载图像一样。

提高性能的简单关键是不要在cellForRowAtIndexpath中做耗时的任务。

您可以使用许多技巧来提高性能。例如,在后台线程中加载视图。

这篇SO帖子描述了各种技巧。

您需要执行 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"]; 来重新处理单元格。如果你还没有,你应该做的是:

在你的

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

方法,您需要:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"] autorelease];
}

从Apple的文档中看一下。

希望这有帮助。

最新更新