【问题标题】:UIImage for button changes incorrectly when pressed first time第一次按下时按钮的 UIImage 更改不正确
【发布时间】:2016-07-28 17:39:35
【问题描述】:

我想在按下时更改按钮的图像。代码如下。问题在于,当您第一次按下按钮时,“else”语句之后的那部分代码正在执行,并且视觉上没有任何变化。然后在第二次和随后的点击中一切正常。

@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")
    }
}

【问题讨论】:

    标签: swift uibutton uiimage


    【解决方案1】:

    您不应该以这种方式比较图像;看起来您从情节提要中初始化了图像,并且与 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
        }
    }
    

    【讨论】:

    • 我刚刚尝试过,效果很好!真的很感激!
    猜你喜欢
    • 2014-10-10
    • 2019-12-29
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    相关资源
    最近更新 更多