簡體   English   中英

UIButton高亮顯示狀態圖像

[英]UIButton highlight state images

我有一個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我無法更改突出顯示的圖像。 你如何解決?

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

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

因為在選擇該按鈕時兩種狀態都處於打開狀態,所以您可以通過輕按它來對其進行提示。

很快,這是通過union完成的:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM