我在viewcontroller中实现了tableview。我没有给出任何细胞选择方式。
我面临的问题是,当我点击任何一个单元格时,它会变成灰色。通常情况下,只有背景应该变成灰色而不是整个细胞。但是这里整个细胞变成了灰色。
有人可以为此提供解决方案吗? 提前致谢!
答案 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
方法中,请不要拨打超级手机,并实施自己的解决方案。 (就像只灰化背景视图一样。)