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)
}
}
我正在尝试为我的应用程序创建一个 "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)
}
}