如何解决在 UiButton ImageView.alpha 在单击事件后更改,如何保留以前的 alpha?
我有一个带有图像的 UIButton(UIButton 的默认图像视图)。
在创建和布局后我设置:
button.imageView?.alpha = 0.3
一切正常。
但是在按钮点击动作后,图片再次完全可见,并且 aplha 值发生了变化。
热防止它,在按钮点击动作后具有相同的 aplha 值?
解决方法
我猜 UIButton 可以在按钮更改其状态时更改其默认子视图的属性。
我建议两种选择:
- 使用 UIButton 的子类并覆盖
isHighligted
属性:
class MyButton: UIButton {
override var isHighlighted: Bool {
didSet {
imageView?.alpha = 0.3
}
}
}
- 或者实现自定义 UIControl 而不是 UIButton。您可以添加和使用您的自定义子视图并定义您希望它们的行为方式。您也可以使用与 UIButton 相同的 UIControl 目标操作(.touchUpInside、.touchDown 等)
class MyButton: UIControl {
let titleLabel = UILabel()
let imageView = UIImageView()
...
}
,
试试这个,删除/评论 button.imageView?.alpha = 0.3 alpha:
let button: UIButton = {
let b = UIButton(type: .system)
b.imageView?.image = yourImage
// b.imageView?.alpha = 0.3
b.addTarget(self,action: #selector(yourAction),for: .touchUpInside)
return b
}()
现在在 viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
changeAlpha()
}
var alphaControl = 0
@objc func changeAlpha() {
if alphaControl == 0 {
button.imageView?.alpha = 0.3
alphaControl = 1
} else {
button.imageView?.alpha = 1 // or all alpha that do you want
alphaControl = 0
}
}
之后,您可以在所有按钮操作中调用函数 changeAlpha()。
您可以在其中添加动画并添加其他内容或进行切换
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。