2012-10-12 166 views
4

我試圖在按下按鈕的瞬間更改圖像按鈕。發佈時,我想回到原來的位置。按下按鈕時更改UIButton圖像

我在這裏看到一些帖子,但它不工作。

是否可以在沒有編程的情況下在GUI中執行它?

我嘗試這樣做:

-(IBAction) toggleUIButtonImage:(id)sender{ 
    if ([sender isSelected]) { 
     [sender setImage:unselectedImage forState:UIControlStateNormal]; 
     [sender setSelected:NO]; 
    }else { 
     [sender setImage:selectedImage forState:UIControlStateSelected]; 
     [sender setSelected:YES]; 
     } 
} 

但是,什麼樣發件人的事件,我應該相關的功能toggleUIButtonImage?

感謝

+1

可以在界面構建器中執行此操作。 – nhahtdh

回答

1

在IB,您可以設置高亮顯示(未選擇)按鈕的狀態的圖像。這應該做到這一點。

查看「實用程序」窗格的「按鈕」部分,然後從「狀態配置」下拉列表中選擇「突出顯示」。

2

這可以用Interface Builder完成,不需要代碼。

在IB中選擇您的按鈕,轉到右側邊欄,將類型更改爲自定義,確保狀態配置爲默認,然後在背景圖像文本字段中鍵入您的「常規圖像」參考的名稱。

然後將狀態配置更改爲突出顯示,然後在背景圖像文本字段中鍵入您的「按下的圖像」參考的名稱。

4
ViewDidLoad方法

設置你能做到這一點在Interface Builder的

[[button setImage:[UIImage ImageNamed:@"unselectedImage.png"] forState: UIControlStateNormal]; 
[[button setImage:[UIImage ImageNamed:@"selectedImage.png"] forState: UIControlStateHighlighted ]; 
12

的財產給每個按鈕狀態配置給不同的設置:

The available states are: default, selected and disabled

或者您還可以使用'UIButton'setImage:forState方法更改代碼中按鈕的'設置'。

[myButton setImage:highlightedImage forState:UIControlStateHighlighted]; 

一般,應高於和不通過改變按鈕的子視圖手動作爲對用戶交互的響應如所描述的由「配置」按鈕做到這一點。它不適合你的原因是UIButton固有的隱藏行爲。您手動進行按鈕子視圖的更改作爲對用戶交互的響應,但是您的更改將更改回按鈕設置中定義的內容(根據按鈕的狀態)。所以看起來你的代碼根本就沒有做任何事情。

+0

謝謝,它工作! –

+0

如果它有幫助,將其標記爲已接受。 –