自定义UITableViewCell与字幕样式

时间:2010-05-27 18:12:24

标签: iphone uitableview

我使用本指南:http://www.bdunagan.com/2009/06/28/custom-uitableviewcell-from-a-xib-in-interface-builder能够在界面构建器中创建自己的自定义UITableViewCell,并带有漂亮的背景图像。但我希望单元格的样式是UITableViewCellStyleSubtitle,仍然可以使用textLabel和detailTextLabel作为我的自定义单元格。我可以通过某种方式在界面构建器中设置单元格的样式吗?

现在使用时只设置了textLabel:

cell.textLabel.text = @"Title";  
cell.detailTextLabel.text = @"Details";

此外,我使用透明图像作为背景,但textLabel具有白色背景。我可以在界面构建器中更改它吗?或者您认为我应该在界面构建器中将自己的标签添加到自定义单元格中并跳过标准textLabel和detailTextLabel吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:16)

使用选项B.要么完全使用自己的自定义单元格,要么完全使用Apple的样式单元格。尝试混合和匹配不是向前兼容的。

如果你想为detailTextLabel,子类UITableViewCell提供方便的属性,并返回你在nib中创建的UILabel。给它一个不同于detailTextLabel的名称。

答案 1 :(得分:4)

如果要在自定义按钮中使用detailTextLabel,请按照下列步骤操作:

1。覆盖UITableViewCell

// MYTableViewCell.h:
@interface MYTableViewCell : UITableViewCell
@end

2。将新IBOutlet添加到子类

// MYTableViewCell.m
@interface MYTableViewCell ()

@property (nonatomic, weak) IBOutlet UILabel* detailLabel;

@end

3。覆盖-detailTextLabel

@implementation MYTableViewCell

- (UILabel*)detailTextLabel
{
    return self.detailLabel;
}

@end

4。设置界面构建器

将tableview单元格的自定义类设置为MYTableViewCell,并将UILabel与新的IBOutlet相关联。将来对tableview单元格上的detailTextView的调用现在将正确返回正确的文本视图。通过这种方式,您可以混合自定义和OS提供的tableview单元格,而无需担心detailTextView。