子类化UITableViewCell没有显示添加的样式

时间:2014-08-04 03:36:30

标签: ios uitableview storyboard subclass subclassing

我正在尝试使用我的应用程序为其多个表视图中的每个单元格使用的自定义样式创建UITableViewCell的子类。我正在为iOS 7.1构建这个。出于某种原因,在initWithStyle中设置样式似乎没有效果。

我的代码:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
        [self.textLabel setTextColor:[UIColor redColor]];
        [self.contentView setBackgroundColor:[UIColor greenColor]];
    }
    return self;
}

在我的故事板中,我已将UITableViewController中的单元格类设置为MYSubTableViewCell。我将表格视图单元格样式设置为基本,我也将其设置为自定义,这没有任何效果。

MyTableViewController.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MYSubTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    return cell;
}

我需要具有预定义背景和文本的单元格,这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

问题是,当您从故事板中实例化您的单元格时,该单元格未使用- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier进行初始化。它使用- (id)initWithCoder:(NSCoder *)aDecoder初始化。

永远不会调用您的初始值设定项。您应该改为覆盖initWithCoder: