gpt4 book ai didi

ios - 在 iOS 中实现收藏夹按钮

转载 作者:行者123 更新时间:2023-11-30 11:02:39 24 4
gpt4 key购买 nike

我正在尝试在应用程序中实现最喜欢的按钮,这是我的尝试。这是我目前拥有的:

let favoriteButton: UIButton = {
let button = UIButton(type: .custom)
var emptyHeartImg = UIImage(named: "emptyheart")
var fullHeartImg = UIImage(named: "fullheart")
emptyHeartImg = emptyHeartImg?.maskWithColor(color: UIColor(r: 128, g: 171, b: 103))
fullHeartImg = fullHeartImg?.maskWithColor(color: UIColor(r: 128, g: 171, b: 103))
let imageView = UIImageView(image: emptyHeartImg, highlightedImage: fullHeartImg)
imageView.contentMode = .scaleAspectFill
button.setImage(imageView.image, for: .normal)
button.addTarget(self, action: #selector(handleFavorite), for: .touchUpInside)
return button
}()

@objc private func handleFavorite() {
if (favoriteButton.imageView?.isHighlighted)! == false {
favoriteButton.imageView?.isHighlighted = true
} else {
favoriteButton.imageView?.isHighlighted = false
}
}

目前这并没有根据需要改变图像。有什么技巧或替代方法来实现收藏夹按钮吗?

最佳答案

我会使用UIButton.isSelected而不是imageView的突出显示状态。我不确定 UIImageView ,但是按钮的 isHighlighted 仅当它们被主动触摸时才有效,而不是持久状态。请参阅标记为 ** 的行:

let favoriteButton: UIButton = {
let button = UIButton(type: .custom)
var emptyHeartImg = UIImage(named: "emptyheart")
var fullHeartImg = UIImage(named: "fullheart")
emptyHeartImg = emptyHeartImg?.maskWithColor(color: UIColor(r: 128, g: 171, b: 103))
fullHeartImg = fullHeartImg?.maskWithColor(color: UIColor(r: 128, g: 171, b: 103))
**button.setImage(emptyHeartImg, for: .normal)
**button.setImage(fullHeartImg, for: .selected)
**button.imageView?.contentMode = .scaleAspectFill
button.addTarget(self, action: #selector(handleFavorite), for: .touchUpInside)
return button
}()

然后在你的处理程序中:

favoriteButton.isSelected = !favoriteButton.isSelected

关于ios - 在 iOS 中实现收藏夹按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53137173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com