2011-03-28 29 views

回答

3

如果在UITableViewCell中有很多UILabel,性能可能会受到影响。

尝试在IB中放置一个单元格,确保IB中的单元格标识符与您在代码中使用的单元标识符匹配以排队。

还要确保所有的标签都设置为不透明,因为这有助于提高性能。

完成所有工作后,使用设备上的CoreAnimation工具进行分析并尝试滚动表格。滚动时您将获得FPS读数 - 20 FPS有点波动但可以接受,远低于此数值真的很不稳定。目标将是30FPS或更高。

如果性能不是很好,或者因为您使用的背景而必须具有透明标签,请考虑使用混合方法。在IB中设计单元格,但不是使用该XIB文件,而是使用代码中的模板作为模板。

什么这将意味着是:

1)在细胞产生,在细胞的layoutSubviews阅读的UITableViewCell的一个实例从厦门国际银行为静态变量。 2)如果您的目标是iOS 3.2或更高版本,那么对于XIB中的每个标签,在与标签相同的位置创建一个CATextLayer(CATextLayers将渲染得更快)。 3)如果您的目标是3.1或更高版本(除非您发疯,否则不要低于3.0),在单元格的drawRect中,在模板标签中指定的位置绘制单元格的所有文本。

一般来说,如果你正在重复使用单元格,检查标签是否不透明可能会足够好(检查以确保它们正如你期望的那样出列)。

0

这听起来像你会更好地建立你的细胞编程。 IB没有太多的定制功能。以编程方式,您可以做更多。这些是关于每个的利弊。

4

在IB中设计和调整你的细胞肯定更容易。如果性能方面有任何差异,只要按照建议重复使用单元格,则不太可能引人注意。如果你重复使用单元格,你只会创建一小撮单元格。无论您是以编程方式创建单元还是从笔尖加载,都应该绝对做到这一点。

在代码中比在IB中更容易完成一些事情,并且可能有一些事情必须在代码中完成。当你遇到这些情况时你会知道它。即使如此,您仍然可以采用混合方法 - 从笔尖加载您的细胞,然后尽可能以编程方式修改它。

+0

我喜欢这种方法。在IB中设计单元格非常容易,所以我将从此开始,然后根据需要以编程方式更改任何内容。谢谢! – 2011-03-28 03:09:16

相关问题