每次单击按钮时,我都会显示心形。单击时,空心被填充,再次单击时,填充的心为空。
@IBOutlet weak var likeBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
likeBtn.addTarget(self, action: #selector(likeBtnClicked(_:)), for: .touchUpInside)
}
@objc func likeBtnClicked(_ sender: UIButton) {
DispatchQueue.main.async {
if self.isSelected == false {
sender.tintColor = .white
self.isSelected = true
} else if self.isSelected == true {
sender.tintColor = .red
self.isSelected = false
}
}
}
单击按钮时,如何使上述心脏填充为红色?
我想要的是用一张图片创建两种情况。
1.点击按钮时心被红色填满
2.再次点击清心
最佳答案
如果您的想法是使用单个图像,则需要将其用作字形。这意味着您必须每次都删除颜色数据并使用正确的颜色对其进行着色。现在,如果您有一个无法使用的透明填充和彩色边框,因为您无法使用忽略原始边框颜色的颜色填充 UIImage。您在这里几乎没有选择。
选项 1 - 使用两个图像
let deselectedImage = UIImage(named: "heart")
let selectedImage = UIImage(named: "heart-filled")
选项 2 - 使用一张图像并使用渲染模式播放
let deselectedImage = UIImage(named: "heart")?.withRenderingMode(.alwaysOriginal)
let selectedImage = UIImage(named: "heart")?.withRenderingMode(.alwaysTemplate)
selectedImage.tintColor = .red
选项 3 - 使用图层边框颜色和渲染心情
与选项 2 相同,但您需要一个白色的心形图像,但在取消选择模式下,您还可以为其设置边框颜色。
关于ios - 关于uiButton点击填空心的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58371693/