UITableViewController自定义单元格滚动性能

时间:2011-02-28 18:17:57

标签: iphone uitableview

所以我有一个UITableViewController。此tableview中的单元格具有以下UIControl:

 2 UILabels, one of which has a shadow and a clearColor background color.
 1 Custom Progress view resized to be larger and with a different color
 3 UIButtons

从功能上讲,他们完全按照自己的意愿行事。但是,我注意到在设备上看到它快速滚动性能并且已经在整个地方丢弃了帧,即使是其他交互,例如按下其中一个按钮。

所以我今天正在阅读并发现这篇文章由Tweetie家伙发现http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/关于如何通过继承UITableViewCell并自己进行绘图来实现快速滚动性能。

这个例子工作得非常好,但是当我尝试使其适应我想要的配置时,我意识到他没有使用任何预定义的UI控件,他手工绘制了所有内容。

虽然我可以看到这是一种非常有效的做事方式,但对于像进度视图和按钮这样的事情,甚至我的某个标签在某种程度上都会产生问题。

所以我的问题是:如果我希望滚动性能良好,或者是否有办法使用标准UI控件并获得良好的滚动性能,是否需要从头开始完全编写控件?

2 个答案:

答案 0 :(得分:1)

如果要向单元格添加自定义控件,则仍应继承UITableViewCell的子类,在init函数中添加控件,将它们放在layoutSubviews中等等 - 就像任何其他视图一样。正如VdesmedT所说,确保你通过出队机制重新使用单元格,这样你就不会在每次滚动操作时分配新的单元格。

答案 1 :(得分:0)

好的,我会提出一些明显但要实现UIScrollView性能的东西,你需要确保dequeue机制运行良好。我经常看到开发人员没有在IB中正确设置标识符,因此缺少UITableViewCell缓存优势