2016-03-01 58 views
0

所以簡單的代碼 - 當按下按鈕時,將背景圖像更改爲其他內容。swift UIButton突出顯示的圖像沒有在第一次點擊時觸發

func betMaxButtonPressed (button: UIButton) { 
    print("bet max button pressed") 
    self.betMaxButton.setBackgroundImage(UIImage(named: "betMaxHighlighted"), forState: UIControlState.Highlighted) 

} 

該函數在另一個函數(設置containerView)中調用,該函數又在viewDidLoad中調用。

它的作品,但不是在第一次按下,隨後按下。如果我添加代碼

self.betMaxButton.setBackgroundImage(UIImage(named: "betMaxHighlighted"), forState: UIControlState.Highlighted) 

to viewDidLoad然後一切都很好,並在第一次點擊觸發。試圖弄清楚爲什麼這是。

+0

我想是因爲這個方法在按下完成時被調用。爲什麼在這個按鈕被按下之前沒有設置? –

回答

0

你不想每按一次改變形象,設置一個UIControlState的圖像就是那個按鈕後面的東西。所以,你想要做的是在viewDidLoad

self.betMaxButton.setBackgroundImage(UIImage(named: "betMaxNormal"), forState: UIControlState.Normal) 
self.betMaxButton.setBackgroundImage(UIImage(named: "betMaxHighlighted"), forState: UIControlState.Highlighted) 

此設置應顯示爲這狀態,這形象。所以當按下按鈕時它會自動改變圖像。無需在插座方法中設置圖像。

+0

非常感謝。這樣可行。杜迪評論也是有道理的。 – neilHouselander

0

試試這個,

func betMaxButtonPressed (button: UIButton) { 
    print("bet max button pressed") 
    self.betMaxButton.setBackgroundImage(UIImage(named: "betMaxHighlighted"), forState: UIControlState.Normal) 

} 

注意:如果你想unhighlight那麼您需要更改按鈕BG(普通圖像)

+0

謝謝你。有點工作,但我只想要touchUpInside觸發時突出顯示的新圖像(它的圖像相同,但顏色不同)。然後需要回到正常圖像。有沒有更乾淨的方法來做到這一點? – neilHouselander

相關問題