2016-07-28 63 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

我刚刚尝试过,它完美的工作!真的很感谢! –

相关问题