iPhone UITableViewCell性能使用drawRect添加多个视图与一个视图

时间:2011-10-06 15:03:00

标签: iphone uitableview uiimage uilabel drawrect

我正在创建一些UITableViewCells里面有几个自定义项目,我的问题是走哪条路:

1)将我需要的所有内容作为单独的视图添加到contentView,使用UILabels表示文本,UIImageViews表示图像(目前使用此处)

2)将单个子类视图添加到contentView,将我的所有文本添加为​​NSString,然后添加我的图像和UIImages,并在drawRect中绘制所有内容

什么会表现得更好,在什么情况下哪一个是比另一个更好的选择?,正如我所看到的那样,除非你实际上在contentView中绘制线条或某些内容,只需使用选项1会更容易,并且根据对于这个Cocoa with love custom cells它虽然有点旧,但效率更高,所以我不知道这是否有所改变。

那么对于性能有什么好处,在哪种情况下你肯定会使用一个而不是另一个?

2 个答案:

答案 0 :(得分:1)

从使用单独的UILabel和UIImageView的第一种方法开始。测试实际设备,并在发现性能问题时进行优化。

根据内容我有选项1比在一个视图中绘制所有内容更快。特别是当该视图必须绘制图像时。 UIImageView由Apple大量优化。

获得性能指标的一个好方法是核心动画工具。

答案 1 :(得分:1)

我认为自己绘制文本会略微提高效率。但是,只要你保持所有标签的背景不透明,我就怀疑差异是否足够重要,所以选择最简单的编程,避免过早优化。

(不透明背景的东西非常重要 - 具有透明背景的标签是表格视图效率低下的一个重要原因。即便如此,除非你有数百个,否则它可能不会有太大问题。)