2016-07-28 3 views
0

ボタンを押すとボタンのイメージを変更したい。コードは以下の通りです。問題は、最初にボタンを押すと、else文の後のコード部分が実行され、視覚的に何も変わらないという事実にあります。その後、2回目以降のクリックですべて正常に動作します。ボタンの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

私は今試したことがあり、それは完璧に動作します!本当にありがとう! –

関連する問題