我已经创建了以下自定义uibutton:
import Foundation
import UIKit
class WhiteGhostYouButton: UIButton {
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.backgroundColor = UIColor.clear
self.titleLabel?.textColor = UIColor.white
self.borderWidth = 2
self.borderColor = UIColor.white
self.cornerRadius = 23
}
}
这很好!
现在,我还想为此按钮实现自定义禁用状态。
我该怎么做?
这似乎不起作用:
import Foundation
import UIKit
class GhostYouButton: UIButton {
required public init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
if (self.isEnabled == false) {
self.backgroundColor = UIColor.clear
self.titleLabel?.textColor = Constant.disabledGrayColor
self.tintColor = Constant.disabledGrayColor
self.borderColor = Constant.disabledGrayColor
self.borderWidth = 2
self.cornerRadius = 20
} else {
self.backgroundColor = UIColor.clear
self.titleLabel?.textColor = Constant.mainGreenColor
self.tintColor = Constant.mainGreenColor
self.borderColor = Constant.mainGreenColor
self.borderWidth = 2
self.cornerRadius = 20
}
}
}
可以禁用我的按钮的ViewDidload:
override func viewDidLoad() {
self.nextButton.isEnabled = false
}
我认为您可以尝试强制didSet
的CC_1:
override var isEnabled: Bool {
didSet {
if (self.isEnabled == false) {
self.backgroundColor = UIColor.clear
self.titleLabel?.textColor = Constant.disabledGrayColor
self.tintColor = Constant.disabledGrayColor
self.borderColor = Constant.disabledGrayColor
self.borderWidth = 2
self.cornerRadius = 20
} else {
self.backgroundColor = UIColor.clear
self.titleLabel?.textColor = Constant.mainGreenColor
self.tintColor = Constant.mainGreenColor
self.borderColor = Constant.mainGreenColor
self.borderWidth = 2
self.cornerRadius = 20
}
}
希望这可以帮助您:)
根据诸如残疾状态之类的州自定义WhiteGhoStyOubutton。您需要根据下面的代码段。
class WhiteGhostYouButton: UIButton {
override func draw(_ rect: CGRect) {
super.draw(rect)
if self.isEnabled = false {
//Customize UI here
} esle {
}
}
}
在任何事件中,诸如按钮按下,可以根据代码代码段
来强制视图的渲染。 @IBAction func button_Pressed(sender: AnyObject) {
sender.setNeedsDisplay()
}