在IB中使用UITableViewCell的子类 - 为什么需要覆盖drawRect:?

时间:2012-02-13 11:48:36

标签: iphone uitableview interface-builder

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW12

关于子类UITableViewCell,上面的链接讨论了覆盖drawRect:以显式绘制单元格内容的需要。

但为什么这有必要呢?我们不能只在IB中创建UITableViewCell的子类,在IB中添加所需的子视图,创建所需的插座连接,然后以编程方式设置这些子视图的值。

为什么需要覆盖drawRect:

2 个答案:

答案 0 :(得分:1)

我在你的链接中找不到它应该是子类DrawRect方法。 我不认为苹果推荐它。

我使用自定义tableViewCells开发了一个包含大量tableControllers的整个应用程序,使用了nib文件,并且从未对drawRect方法进行子类化。

我从未发现任何问题,我的应用程序成功通过了应用商店评论。

答案 1 :(得分:1)

您不需要覆盖drawRect:除了您需要使用UIAlertView的textField实现方法之外。但是,绘制单元格的内容可以在某些情况下提高性能,特别是如果您有多个非不透明图层并且可以将它们绘制到一个不透明单元格中,因为渲染器不需要复合和混合多个倍。通过绘制到单个不透明层,硬件只需在屏幕上显示之前进行混合。

请注意,如果您不会遇到延迟或者每个单元格中都有动画,那么绘图对您没有帮助。