为自定义UIBUTTON设置残疾状态



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

最新更新