2014-08-27 99 views
0

我有一个UItableview与自定义单元格。单元格的高度在您选择它时会发生变化,并且会产生扩展效果。但是,当您选择单元格时,所有子视图的背景看起来都变得透明。我试过设置单元格的SelectedBackgroundView,但这并不影响单元格子视图。UITableView所选行更改子视图背景颜色

下面是一些图片:

休息日: enter image description here

公开赛: [在这里输入的形象描述] [2]

这是它应该如何看待或至少在XCode - (对不起,这里的图表不好) enter image description here

回答

5

致电[tableView deselectRowAtIndexPath:indexPath animated:YES];didSelectRowAtIndexPath。这应该可以解决你的问题。

编辑

如果你不希望看到任何灰色的选择的话,那么,在你的cellForRowAtIndexPath,设置cell.selectionStyleUITableViewCellSelectionStyleNone,像这样:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+0

这是一个解决方案;但是,由于一些动画,这似乎不是最好的解决方案。在显示正确之前,单元格显示无色部分的位置稍等。 – jharr100 2014-08-27 19:50:49

+0

然后设置'tableView deselectRowAtIndexPath:indexPath animated:NO];' – avismara 2014-08-27 19:51:53

+0

请参阅我编辑的答案。 – avismara 2014-08-27 19:55:16

2

。假定你已为您的自定义单元格分类了UITableViewCell,您可以通过覆盖自定义子类中的setSelected方法来选择/取消选择时修改单元格的外观。例如:

- (void) setSelected:(BOOL)selected { 

    [super setSelected:selected]; 
    if (selected) { 
     //Configure the selected state here 
    } else { 
     //Configure the deselected state here 
    } 
} 
1

UITableViewCell更改所有选定子视图的backgroundColor出于某种原因。

这可能帮助:

DVColorLockView

0

如果你想正常的选择行为,但要排除特定的细胞子视图,你可以做一些like this锁定通过继承背景颜色和检查,如果它已被锁定在backgroundColor二传手。