我有一个uitableview,在每个单元格中加载相当大的图像,单元格高度根据图像的大小而变化。滚动表现不错,但有时可能会生涩。
我在FieryRobot博客上找到了这些提示:
glassy-scrolling-with-uitableview
more-glassy-scrolling-with-uitableview
有没有人有提高uitableview滚动性能的提示?
答案 0 :(得分:153)
UITableViewCell
drawRect:
中绘制所有内容,如果可能的话,不惜一切代价避免使用子视图(或者如果您需要标准辅助功能,内容视图的drawRect:
)UITableViewCell
图层不透明(如果有的话,内容视图也是如此)UITableView
examples / documentation UIImage
s 答案 1 :(得分:40)
UITableViewCell
,不要使用笔尖,
把它写在代码中代替。这很多
比加载Nib文件更快。答案 2 :(得分:34)
Tweetie背后的开发人员已经写了很多关于此的内容,并且有一些代码可以演示如何为该应用程序完成它。基本上,他/她提倡每个表格单元格一个自定义视图,并手动绘制(而不是使用Interface Builder进行子视图,以及其他选项)。
fast-scrolling-in-tweetie-with-uitableview
此外,Apple已在其TableViewSuite教程中更新了自己的TableView示例代码(可能是为了回应?)
答案 3 :(得分:1)
认为必须这样说,因为没有一个被接受的答案提到了阴影和层次。 :+)
答案 4 :(得分:0)
UITableView
滚动性能的任何问题都可以使用其他答案中已描述的技术来解决。然而,很多次表现迟缓是由于某种本身错误或重复的原因造成的。
UITableView
重用单元格的事实,以及每个单元格可能需要自己的图像的事实 - 一起使解决方案变得复杂。从一般的解决方法来看,我总结了应该注意的事项:
[tableView reloaddata]
cellForRowAtIndexPath
内,包含将从数组的正确数据模型对象设置数据(文本)的代码。 为避免出现问题,请参阅本教程,了解表格视图中的lazy loading of images。