我有一个UItableview与自定义单元格。单元格的高度在您选择它时会发生变化,并且会产生扩展效果。但是,当您选择单元格时,所有子视图的背景看起来都变得透明。我试过设置单元格的SelectedBackgroundView,但这并不影响单元格子视图。UITableView所选行更改子视图背景颜色
下面是一些图片:
休息日:
公开赛: [在这里输入的形象描述] [2]
这是它应该如何看待或至少在XCode - (对不起,这里的图表不好)
我有一个UItableview与自定义单元格。单元格的高度在您选择它时会发生变化,并且会产生扩展效果。但是,当您选择单元格时,所有子视图的背景看起来都变得透明。我试过设置单元格的SelectedBackgroundView,但这并不影响单元格子视图。UITableView所选行更改子视图背景颜色
下面是一些图片:
休息日:
公开赛: [在这里输入的形象描述] [2]
这是它应该如何看待或至少在XCode - (对不起,这里的图表不好)
致电[tableView deselectRowAtIndexPath:indexPath animated:YES];
在didSelectRowAtIndexPath
。这应该可以解决你的问题。
编辑
如果你不希望看到任何灰色的选择的话,那么,在你的cellForRowAtIndexPath
,设置cell.selectionStyle
到UITableViewCellSelectionStyleNone
,像这样:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
。假定你已为您的自定义单元格分类了UITableViewCell,您可以通过覆盖自定义子类中的setSelected方法来选择/取消选择时修改单元格的外观。例如:
- (void) setSelected:(BOOL)selected {
[super setSelected:selected];
if (selected) {
//Configure the selected state here
} else {
//Configure the deselected state here
}
}
如果你想正常的选择行为,但要排除特定的细胞子视图,你可以做一些like this锁定通过继承背景颜色和检查,如果它已被锁定在backgroundColor
二传手。
这是一个解决方案;但是,由于一些动画,这似乎不是最好的解决方案。在显示正确之前,单元格显示无色部分的位置稍等。 – jharr100 2014-08-27 19:50:49
然后设置'tableView deselectRowAtIndexPath:indexPath animated:NO];' – avismara 2014-08-27 19:51:53
请参阅我编辑的答案。 – avismara 2014-08-27 19:55:16