我有一個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