2013-04-20 55 views

回答

-1

嘗試用這一個可能是它可以幫助你,

UIView *selectedBackgroundViewForCell = [UIView alloc]init]; 
[selectedBackgroundViewForCell setBackgroundColor:[UIColor grayColor]]; 
theCell.selectedBackgroundView = selectedBackgroundViewForCell; 

(或)

cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease]; 
+0

這並不顏色設置爲一樣'UITableViewCellSelectionStyleGray'並沒有顯示'UITableViewCell'怎麼設置成狀態選擇。 – 2015-05-08 10:33:41

2

所有單元選擇樣式通過設置單元格的selectedBackgroundView財產實施。對於藍色和白色系統,這些是內置藍色和灰色梯度的視圖。將單元格選擇樣式設置爲藍色或灰色只是告訴單元格將其中一個視圖用作其選定的背景。

假設您已將所有單元格內容添加到內容視圖中,您仍然可以將這些樣式用於自定義單元格。

您可以創建自己的視圖(通常爲可拉伸圖像或自定義圖形視圖),並將其設置爲自定義效果的選定背景視圖。

當選中單元格時,它也會告訴其任何內容視圖子視圖(標籤等)突出顯示(如果可以)。您可以通過在任何標籤上設置highlightedTextColor來控制此外觀。

您可以實現所有這些,而無需觸摸setSelected。這一切都是由基礎實施完成的。

+0

投票?真?任何人都在意解釋爲什麼? – jrturton 2013-04-20 12:13:59

1

發現了完全適合由蘋果UITableViewCellSelectionStyleGray實施UIColor一個帖子:

UIColor* selectedColor = [UIColor colorWithRed:217.0/255.0 
             green:217.0/255.0 
              blue:217.0/255.0 alpha:1.0]; 

改變的事情上的選擇,只要你實現你的自定義UIButton擴展中setSelected:(BOOL)selected方法。這可以是這樣的:

- (void)setSelected:(BOOL)selected{ 
    [super setSelected:selected]; 
    if(selected){ 
     // change things here on highlight 
    } else { 
     // change things here on unhighlight 
     NSLog(@"unselected"); 
    }  
} 

進入這個模式,你應該將電池設置爲selected = YES

Original post can be found here.