我正在尝试为我的应用创建一个“赞”按钮。当我按下按钮时,我希望它更改为第二个图像,当我再次按下它时,我将其更改回第一个图像。
这是我的代码:
@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)
}
答案 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)
}
}