自定义UITableViewCell在选择时不显示内容

时间:2014-08-21 17:21:27

标签: ios objective-c uitableview

我的简单自定义UITableViewCell子类在选中时不会显示其内容。当我点击其中一个单元格时,绿色视图消失,我只看到单元格的红色背景颜色。当我选择另一个单元格时,先前选择的单元格的内容会再次出现。有什么想法吗?

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)reuseIdentifier
{
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])
    {
        self.backgroundColor = [UIColor redColor];

        UIView* someView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
        someView.backgroundColor = [UIColor greenColor];

        [self.contentView addSubview:someView];
    }

    return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
}

我在我的视图控制器中注册了这个`viewDidLoad':

[self.tableView registerClass:[MyTableViewCell class] forCellReuseIdentifier:@"Identifier"];

以下是我创建它们的方法:

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

    if (cell == nil)
    {
        cell = [[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                      reuseIdentifier:@"Identifier"];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    return cell;
}

1 个答案:

答案 0 :(得分:2)

您的单元格背景应在backgroundViewselectedBackgroundView属性中设置,而不是作为contentView的子视图添加。只有内容(文字,图片等)应该在contentView