使用大量子视图优化UIScrollView

时间:2010-08-03 18:43:00

标签: iphone objective-c uiscrollview

我有一个UIScrollView用于模拟UITableView之类的交互,因为行比UITableView提供的要复杂一些。我有4个UILables UIImageView和每行UIButton。最终结果是很多子视图。

即使只有10行,滚动视图在模拟器中看起来很好但在iPhone 4上的帧速率相当低。这肯定是资源消耗问题。

有没有办法在双缓冲滚动时优化重绘?

如果没有,是否有其他方法可以获得可自定义的UITableview功能?

感谢

4 个答案:

答案 0 :(得分:2)

每个View都有4xUILabels,UIImageView和UIButton吗?

我会创建一个带有自定义UITableViewCell的nib文件(您可以根据需要制作那些复杂的文件),然后您可以重复使用单元格来帮助您提高性能。

有关如何执行此操作的信息,请访问: http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW1

答案 1 :(得分:1)

我认为您可能想要创建UITableViewCell的自定义子类,因为UITableView将为您处理所有重绘。在自定义UITableViewCell中,您可以添加任意数量的子视图。

答案 2 :(得分:1)

看看http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

UITableViews是UIScrollView的子类(或者至少符合他们的行为),但是你真的想让iPhone为你提供UITableView提供的选择性绘图/单元重用。

答案 3 :(得分:0)

如果它能完成你需要的一切,你应该使用UITableView

但是,如果您的tableview单元格非常复杂,或者您想在scrollview上启用分页,则应该查看Apple提供的PageContol示例代码。简而言之,您可以在scrollViewDidScroll:中观察移动,并在它们变得可见之前加载新的“页面”。对于任意长的页面列表,此方法在实践中非常有效。