我有一个包含自定义单元格的UItableview。选择它时,单元格的高度会发生变化,并产生扩展效果。但是,当您选择单元格时,所有子视图的背景都会变得透明。我尝试过设置单元格的SelectedBackgroundView,但这并没有真正影响单元格子视图。
以下是一些图片:
闭:
打开: ![在此处输入图像说明] [2]
这是它在XCode中应该看起来或者至少看起来的样子 - (抱歉这里的图形不好)
答案 0 :(得分:5)
在[tableView deselectRowAtIndexPath:indexPath animated:YES];
致电didSelectRowAtIndexPath
。这应该可以解决您的问题。
修改强>
如果您根本不想看到任何灰色选择,请在cellForRowAtIndexPath
中将cell.selectionStyle
设置为UITableViewCellSelectionStyleNone
,如下所示:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
答案 1 :(得分:2)
假设您已为自定义单元格创建了UITableViewCell的子类,则可以通过覆盖自定义子类中的setSelected方法来选择/取消选择单元格的外观。例如:
- (void) setSelected:(BOOL)selected {
[super setSelected:selected];
if (selected) {
//Configure the selected state here
} else {
//Configure the deselected state here
}
}
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您想要正常选择行为但想要排除特定的单元格子视图,则可以通过子类化并检查它是否在backgroundColor
setter中锁定来执行like this来锁定背景颜色。< / p>