2017-02-09 76 views
0

我目前有一個UIButton,在選擇時從紅色變爲綠色。我怎樣才能實現相反的功能,以便在再次選擇時回到原始狀態?下面是我當前的代碼:改變觸摸按鈕的顏色...然後再回來

@IBAction func button1press(_ sender: AnyObject) { 
    (sender as! UIButton).backgroundColor = UIColor.green 
    } 
+1

與您的問題無關,但如果您將'sender'聲明爲'UIButton'而不是'AnyObject',則代碼將更容易。 – rmaddy

+0

@rmaddy是正確的。如果你這樣做,你可以將你的行爲綁定到任何UIButton狀態 - 包括選定的狀態。 – dfd

+0

[如何知道何時按下按鈕並取消按鈕按下]可能的重複(http://stackoverflow.com/questions/41947279/how-to-know-when-the-button-is-pressed-and-canceled - 按鈕按壓)。這應該會給你所有你需要的。如果沒有,編輯你的問題,我相信我們可以回答。 – dfd

回答

1

當輕點按鈕更新所選狀態,即: 這樣,你知道哪些狀態下的按鈕是。

如果您希望編輯其他屬性,如文本顏色,字體,圖像等......您可以使用故事板「狀態配置」選項,並針對不同狀態製作不同的主題(在IB的範圍內)

@IBAction func button1press(_ sender: AnyObject) { 
    if let button : UIButton = sender as? UIButton 
    { 
     button.isSelected = !button.isSelected 

     if (button.isSelected) 
     { 
      button.backgroundColor = UIColor.green 
     } 
     else 
     { 
      button.backgroundColor = UIColor.red 
     } 
    } 
} 
+0

非常感謝 - 這很好! –

0

在每次按下時,檢查當前背景顏色,並將其更改爲另一個。

@IBAction func button1press(_ sender: UIButton) { 
    if let button = sender as? UIButton { 
     if button.backgroundColor == UIColor.green { 
      button.backgroundColor = UIColor.red 
     } 
     else if button.backgroundColor == UIColor.red { 
      button.backgroundColor = UIColor.green 
     } 
    } 
}