0

我有UITableViewCell一些子视图。我需要这个子视图显示在单元格的顶部,而不是选中。问题是这个单元格selectedBackgroundView在选择时隐藏了我需要的子视图。

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

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

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

4

3 回答 3

0

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

[cell.contentView addSubview:yourView];
于 2013-07-08T12:52:40.997 回答
0

cell.selectionStyle = UITableViewCellSelectionStyleNone;

于 2013-07-08T12:00:52.113 回答
0

如果你有一个自定义的 Cell,你可以实现

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

如果不是,逻辑是一样的,只是在

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

方法 ;)

于 2013-07-08T12:01:32.533 回答