我有使用class customButton的按钮。此按钮功能在10次触摸后自动禁用。
我有问题,在最后一次触摸它将从isHighlighted而不是isEnabled获取颜色。你会如何解决这个问题?
非常感谢。
class customButton: UIButton {
override open var isHighlighted: Bool {
didSet {
//Set colors for Highlighted & Unhighlighted
backgroundColor = isHighlighted ? UIColor(named: "RedAlpha")! : UIColor(named: "Red")!
}
}
override open var isEnabled: Bool {
didSet {
backgroundColor = isEnabled ? UIColor(named: "Red")! : UIColor(named: "Dis")!
}
}
}
答案 0 :(得分:2)
根据按钮的上次状态更改,它可能具有不同的颜色。你可以试试这个。
class customButton: UIButton {
override open var isHighlighted: Bool {
didSet {
updateBackgroundColor()
}
}
override open var isEnabled: Bool {
didSet {
updateBackgroundColor()
}
}
func updateBackgroundColor() {
//Set colors for Highlighted & Unhighlighted
if isEnabled {
backgroundColor = isHighlighted ? UIColor(named: "RedAlpha")! : UIColor(named: "Red")!
} else {
backgroundColor = UIColor(named: "Dis")!
}
}
}
答案 1 :(得分:0)
据我了解你的问题,正确的方法是改变isEnabled
的颜色。但是,如果您想要撰写有问题的内容,请在最后一次触摸设置isHighlighted
至true
并将isUserInteractionEnabled
设置为false
,以便它会忽略用户事件。< / p>
customButton.isHighlighted = true
customButton.isUserInteractionEnabled = false