UITableViewCell选择突出显示颜色

时间:2015-04-29 08:55:16

标签: objective-c uitableview ios8

我在viewcontroller中实现了tableview。我没有给出任何细胞选择方式。

我面临的问题是,当我点击任何一个单元格时,它会变成灰色。通常情况下,只有背景应该变成灰色而不是整个细胞。但是这里整个细胞变成了灰色。

有人可以为此提供解决方案吗? 提前致谢!

2 个答案:

答案 0 :(得分:3)

您必须按照以下步骤实施自定义选择样式。

首先,您需要禁用默认选择行为:

- (void)awakeFromNib {
    [super awakeFromNib];
    self.selectionStyle = UITableViewCellSelectionStyleNone;
}

其次,覆盖setHighlighted方法(当用户点击单元格但尚未抬起他的手指时):

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
    [super setHighlighted:highlighted animated:animated];

    // Configure the view for the selected state
    self.YOURVIEW.background = [UIColor grayColor];
}

第三,覆盖setSelected方法(当用户点击并举起手指时):

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

    // Configure the view for the selected state
    self.YOURVIEW.background = [UIColor grayColor];
}

最后,您需要通过调用:

在适当的时间取消选择tableview中的单元格
[self.tableView deselectRowAtIndexPath:animated:];

答案 1 :(得分:1)

在您的手机setSelected方法中,请不要拨打超级手机,并实施自己的解决方案。 (就像只灰化背景视图一样。)