2016-07-28 46 views
0

我想在按下時改變按鈕的圖像。代碼如下。問題在於,當您第一次按下按鈕時,「else」語句之後的那部分代碼正在執行,並且視覺上沒有任何變化。然後,所有內容都可以與第二次點擊和以下點擊一起使用第一次按下時UIImage按鈕的改變不正確

@IBOutlet weak var beenHereButton: UIButton! 

@IBAction func beenHereButtonPressed(sender: AnyObject) 
{ 
    if beenHereButton.imageView!.image == UIImage(named: "locationButton") 
    { 

     beenHereButton.setImage(UIImage(named: "locationButtonPressed"), forState: .Normal) 
     print("Button Pressed") 

    } 
    else 
    { 

     beenHereButton.setImage(UIImage(named: "locationButton"), forState: .Normal) 
     print("Button released") 
    } 
} 

回答

0

您不應該以這種方式比較圖像;看起來像你從故事板初始化圖像,它不像初始化類UIImage一樣。使用其他解決方案可能你需要在代碼的其他部分指示任何方式,所以製作標誌屬性:

var buttonPressed = false 
@IBOutlet weak var beenHereButton: UIButton! 
@IBAction func beenHereButtonPressed(sender: AnyObject) 
{ 
    if !buttonPressed 
    { 
     beenHereButton.setImage(UIImage(named: "locationButtonPressed"), forState: .Normal) 
     print("Button Pressed") 
     buttonPressed = true 
    } 
    else 
    { 
     beenHereButton.setImage(UIImage(named: "locationButton"), forState: .Normal) 
     print("Button released") 
     buttonPressed = false 
    } 
} 
+1

我剛剛嘗試過,它完美的工作!真的很感謝! –

相關問題