2014-08-27 96 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二傳手。