UITableViewCell自定义,在哪里附加子视图?

时间:2012-01-15 20:45:25

标签: ios

在子类化UITableViewCell时定义一个完整的自定义单元格要设置哪种样式? UITableViewCellStyleDefault?实际上我既不需要标签也不需要imageView,它们会被分配相同吗?

因此,在将自定义视图附加到UITableViewCell子类时,最好是添加到self还是self.contentView?

在UITableViewCell子类(如背景)中的drawRect中做一些石英绘图是否可以?

由于

3 个答案:

答案 0 :(得分:4)

  

在子类化UITableViewCell时定义一个完整的自定义单元格要设置哪种样式? UITableViewCellStyleDefault?实际上我既不需要标签也不需要imageView,它们会被分配相同吗?

由于您没有使用UITableViewCell的任何预定义的UILabel或UIImageView子视图,因此它并不重要。我只使用UITableViewCellStyleDefault。我不确定是否分配了UILabel或UIImageView。但是,由于无法明确告诉UITableViewCell 创建这些子视图,我不担心。即使它们被创建,你也不会使用它们,因此绘制单元格的速度不会太慢,并且由于在滚动表格时会重复使用单元格,因此只需分配一些额外的对象就不会影响整个表格视图性能

  

因此,在将自定义视图附加到UITableViewCell子类时,最好是添加到self还是self.contentView?

所有内容都应放在UITableViewCell contentView中。当UITableView右侧有索引或者UITableView(或UITableViewCell)进入编辑模式时,这将确保内容正常运行。

  

在UITableViewCell子类(如背景)中的drawRect中做一些石英绘图是否可以?

建议的方法是将后台放在UITableViewCell backgroundView属性中。因此我不建议在UITableViewCell子类本身中进行任何绘制。只需使用contentViewbackgroundViewselectedBackgroundView属性即可。您可以创建一个简单的UIView子类,如果愿意,只需将其设置为UITableViewCell的backgroundView

答案 1 :(得分:0)

如果您想创建自定义UITableViewCell,我的经验是使用IB而不是代码会更容易 - 即使您更喜欢正常使用代码。我肯定会建议你看看这两个链接:
Creating a custom UITableViewCell in iOS 4
Custom UITableViewCell

这听起来就像您正在寻找的 - 在这种情况下您不必使用标签图像,并且您可以为您需要的任何自定义UIViews设置插座

答案 2 :(得分:0)

  

要设置什么样的风格? UITableViewCellStyleDefault?

这取决于你的目标。最常用的样式是UITableViewCellStyleDefault。 见Using Cell Objects in Predefined Styles


  

最好是添加到self还是self.contentView?

developer.apple.com recommends将子视图添加到self.contentView(他们特别将其称为 contentView )。


  

可以做一些石英绘图

这也取决于你的目标。如果您只使用图像或颜色作为背景,那么在IB中自定义您的单元格视图,我没有看到使用qurtz框架的原因。