UITableView所选行更改子视图背景颜色

时间:2014-08-27 19:24:49

标签: ios xcode xamarin.ios xamarin

我有一个包含自定义单元格的UItableview。选择它时,单元格的高度会发生变化,并产生扩展效果。但是,当您选择单元格时,所有子视图的背景都会变得透明。我尝试过设置单元格的SelectedBackgroundView,但这并没有真正影响单元格子视图。

以下是一些图片:

闭: enter image description here

打开: ![在此处输入图像说明] [2]

这是它在XCode中应该看起来或者至少看起来的样子 - (抱歉这里的图形不好) enter image description here

4 个答案:

答案 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)

UITableViewCell由于某种原因更改了所有子视图的backgroundColor。

这可能会有所帮助:

DVColorLockView

答案 3 :(得分:0)

如果您想要正常选择行为但想要排除特定的单元格子视图,则可以通过子类化并检查它是否在backgroundColor setter中锁定来执行like this来锁定背景颜色。< / p>