0

我的應用程序在不同屏幕中顯示分組靜態UITableViews。反正是有使用外觀代理更改iOS5中所選UITableViewCells的背景顏色

[UITableView appearance] 

[UITableViewCell appearance] 

定製所選單元格的背景顏色的?基本上,我需要修改

cell.selectedBackgroundView.backgroundColor 

在我的應用程序的每個細胞,但我不能找到合適的物業在代理對象進行設置。

順便說一句,我也嘗試了正常的方法(即一組靜態表):

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    cell.selectedBackgroundView.backgroundColor = [UIColor yellowColor]; 

} 

,但它不工作。任何建議?

回答

7

您需要提供selectedBackgroundView的視圖。那裏已經沒有人了。嘗試:

cell.selectedBackgroundView = [[UIView alloc] initWithFrame:cell.bounds] ; 
cell.selectedBackgroundView.backgroundColor = [UIColor yellowColor] ; 

另外,在創建單元時,一個更好的地方把這個代碼(至少是第一行)是-tableView:cellForRowAtIndexPath:。否則,每次顯示單元格時都會創建一個新的背景視圖。

+0

如果你拖動並選擇其他單元?這似乎並不正確的答案。 –

+0

-tableView:cellForRowAtIndexPath:影響所有單元格。 – leftspin

+0

我的意思是,選定的背景視圖部分將改變選定的單元格的顏色。但是,單元格本身會在您拖動時取消選擇。對於你來說,最好的做法是用'willDisplayCell'委託方法在單元格中加入任何類型的預視效果。 –