UITableViewCell总是显示一些子视图

时间:2013-07-08 11:57:12

标签: ios objective-c uitableview

我有一些UITableViewCell有一些子视图。我需要这个子视图显示在单元格的顶部是否被选中。问题是这个单元格有selectedBackgroundView,它会在select上隐藏我需要的子视图。

UIView *bgView = [[UIView alloc] initWithFrame:cell.bounds];
bgView.backgroundColor = someColor;
cell.selectedBackgroundView = bgView;

我也试过cell.selectedBackgroundView addSubview:,但没有帮助。

所以问题是:如果选择了单元格,如何在单元格中添加一些子视图使其位于顶部?

3 个答案:

答案 0 :(得分:0)

设置cell.selectionStyle = UITableViewCellSelectionStyleNone;

答案 1 :(得分:0)

如果您有自定义Cell,则可以实现

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

如果没有,逻辑是相同的,只是在

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

方法;)

答案 2 :(得分:0)

您必须将子视图添加到tableViewCell的contentView而不是直接添加到单元格。 即使它是您已实现的UITableViewCell的自定义子类,也必须将其他子视图添加到tableViewCell的contentView。选择单元格后,不会隐藏contentView及其子视图。

[cell.contentView addSubview:yourView];