我创建了以下自定义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
}

最佳答案

我认为您可以尝试实现didSetisEnable:

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
           }
    }
希望这可以帮到你 :)

10-08 08:05
查看更多