2017-08-15 148 views
0

如何在每次按下按鈕時將UIButton更改圖像從A更改爲B並將B再更改爲A?如何在每次按下時更改UIButton的圖像

不是.normal.highlighted,但永久。 我已經試過.highlighted方法,因爲我無法找到永久的代碼,這裏是我的代碼:

func ChangeButton() { 
    Button.setImage(A, for: .normal) 
    Button.setImage(B, for: .highlighted) 
+0

你到目前爲止嘗試過什麼? – mat

+0

我試過.highlighted方法,因爲我找不到永久代碼,下面是我的代碼: func ChangeButton(){ Button.setImage(A,for:.normal) Button.setImage(B,for :.highlighted) – Shahin

+0

請參閱:https://stackoverflow.com/questions/44938919/how-do-i-change-an-image-if-i-click-on-a-button-in-swift/44939698# 44939698 –

回答

1

感謝您從對方的回答中提到setBackgroundImage澤維爾L.。 試試下面的代碼:

import UIKit 
class ViewController: UIViewController { 

    @IBOutlet var button: UIButton! 
    var buttonActive = false 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     button.setBackgroundImage(UIImage(named: "apple"), for: .normal) 
    } 

    @IBAction func buttonPressed() { 
     if buttonActive { 
      button.setBackgroundImage(UIImage(named: "apple"), for: .normal) 
     } else { 
      button.setBackgroundImage(UIImage(named: "pineapple"), for: .normal) 
     } 
     buttonActive = !buttonActive 
    } 
} 

和你的故事板應該看起來像: Storyboard

注:在堆棧溢出時,您應該在詢問之前執行一些操作。嘗試包括你嘗試過的一些代碼。

+0

它的工作,感謝一百萬 – Shahin

0

我建議更改backgroundImage,因爲它會自動縮放,並且前面的按鈕文本不會被覆蓋。

如果它是一個自定義按鈕,它的初始化中:

self.addTarget(self, action: #selector(*yourfunctoswitchimages*), for: .touchUpInside) 

...然後是yourfunctoswitchimages可以只檢查當前的背景圖像是什麼,並相應地打開它。


如果它不是自定義按鈕,請在viewDidLoad中添加一個目標。這裏有很多示例代碼。

在您的viewDidLoad()

yourButt.addTarget(self, action: #selector(switcheroo), for: .touchUpInside) 

另一個FUNC在您的視圖控制器:

func switcheroo() 
{ 
    if yourButt.currentBackgroundImage == image1 
    { 
     yourButt.setBackgroundImage(image2), for: .normal) 
    } 
    else { // ...set image to image1 } 
} 

yourButt是當然的視圖控制器的特性,這樣,它是在viewDidLoad中訪問( )以及其中的其他funcs。

相關問題