UIButton不更改图像

时间:2015-12-04 00:18:30

标签: ios swift uibutton uiimage

我正在尝试为我的应用创建一个“赞”按钮。当我按下按钮时,我希望它更改为第二个图像,当我再次按下它时,我将其更改回第一个图像。

这是我的代码:

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

1 个答案:

答案 0 :(得分:3)

您将这两个图片设置为正常状态,因此"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)
    }
}