2011-10-02 28 views
0

我有一個UIButton和我一起設置:的UIButton強調狀態圖像

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

UIImage *imageNormal = [UIImage imageNamed:@"normal.png"]; 
UIImage *imageNormalHover = [UIImage imageNamed:@"normalHover.png"]; 
UIImage *imageSelected = [UIImage imageNamed:@"selected.png"]; 
UIImage *imageSelectedHover = [UIImage imageNamed:@"selectedHover.png"]; 

[myButton setImage:imageNormal forState:UIControlStateNormal]; 
[myButton setImage:imageSelected forState:UIControlStateSelected]; 

if (boolVar) { 
    [myButton setSelected:YES]; 
    [myButton setImage:imageSelectedHover forState:UIControlStateHighlighted]; 
} else { 
    [myButton setImage:imageNormalHover forState:UIControlStateHighlighted]; 
} 

的問題是,當狀態是正常的,我試着按下按鈕我看到正確的圖像normalHover.png但當狀態被選中,我嘗試按下按鈕,我仍然看到normalHover.png而不是selectedHover.png。這似乎與UIButton我無法更改突出顯示的圖像。你如何解決?

回答

5

您需要設置圖像的UIControlStateSelected | UIControlStateHighlighted組合狀態:

[myButton setImage:imageSelectedHover forState:(UIControlStateSelected | UIControlStateHighlighted)]; 

因爲這兩個國家是當選擇按鈕,你通過點擊它hignlight它。

0

在此迅速與union完成:

myButton.setImage(imageSelectedHover, forState: UIControlState.Selected.union(UIControlState.Highlighted))