UIButton 不改变图像

UIButton not changing image

我正在尝试为我的应用程序创建一个 "like" 按钮。当我按下按钮时,我想让它变成第二张图片,当我再次按下它时,我让它变回第一张图片。

这是我的代码:

@IBAction func sendLike(sender: UIButton) {

    if let _ = UIImage(named:"pinkLike.png") {
        sender.setImage(UIImage(named:"like.png"), forState: .Normal)
    }

    if let _ = UIImage(named:"like.png") {
        sender.setImage(UIImage(named:"pinkLike.png"), forState: .Normal)
    }
}

出于某种原因,这行代码按我希望的方式运行:

if let _ = UIImage(named:"like.png") {
        sender.setImage(UIImage(named:"pinkLike.png"), forState: .Normal)
    }

但是当我再次按下按钮时,这条线并没有改回来:

if let _ = UIImage(named:"pinkLike.png") {
        sender.setImage(UIImage(named:"like.png"), forState: .Normal)
    }

您将这两个图像都设置为正常状态,因此您的 "like.png" 将始终覆盖 "pinkLike.png" 图像。

您需要将 "pinkLike.png" 置于不同的状态。

if let _ = UIImage(named:"pinkLike.png") {
    sender.setImage(UIImage(named:"like.png"), forState: .Selected)
}

并在设置图像之前更改您选择的状态。所以你的代码将是这样的。

@IBAction func sendLike(sender: UIButton) {
    sender.selected = !sender.selected
    if let _ = UIImage(named:"pinkLike.png") {
        sender.setImage(UIImage(named:"like.png"), forState: .Normal)
    }

    if let _ = UIImage(named:"like.png") {
        sender.setImage(UIImage(named:"pinkLike.png"), forState: .Selected)
    }
}