子类 UI 具有属性的按钮没有改变 UI
Subclassed UIButton with properties isn't changing UI
我有一个非常简单的具有 1 个属性的 UIButton 子类:bgPropertyColor
。情节提要中有 3 个按钮,它们都有指向该子类的出口。
我希望能够从视图控制器调整 bgPropertyColor
属性。在我下面的示例中,我可以访问 bgPropertyColor 属性,但是颜色(红色/蓝色/绿色)没有按照我的预期应用于按钮背景。
UIButton
class CustomButton:UIButton {
var bgPropertyColor = UIColor.clear
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.backgroundColor = bgPropertyColor
}
}
ViewController
class ViewController: UIViewController {
@IBOutlet weak var b1: CustomButton!
@IBOutlet weak var b2: CustomButton!
@IBOutlet weak var b3: CustomButton!
override func viewDidLoad() {
super.viewDidLoad()
b1.bgPropertyColor = .red
b2.bgPropertyColor = .blue
b3.bgPropertyColor = .green
}
}
如何初始化子类按钮,以便我能够在视图控制器上微调每个按钮的属性(背景颜色)?
您可能需要
var bgPropertyColor : UIColor = UIColor.clear {
didSet {
self.backgroundColor = bgPropertyColor
}
}
因为更改 bgPropertyColor
不会像您预期的那样反映到 backgroundColor
,也可能是 属性 没用,因为您可以直接更改 backgroundColor
IB/Code
我有一个非常简单的具有 1 个属性的 UIButton 子类:bgPropertyColor
。情节提要中有 3 个按钮,它们都有指向该子类的出口。
我希望能够从视图控制器调整 bgPropertyColor
属性。在我下面的示例中,我可以访问 bgPropertyColor 属性,但是颜色(红色/蓝色/绿色)没有按照我的预期应用于按钮背景。
UIButton
class CustomButton:UIButton {
var bgPropertyColor = UIColor.clear
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.backgroundColor = bgPropertyColor
}
}
ViewController
class ViewController: UIViewController {
@IBOutlet weak var b1: CustomButton!
@IBOutlet weak var b2: CustomButton!
@IBOutlet weak var b3: CustomButton!
override func viewDidLoad() {
super.viewDidLoad()
b1.bgPropertyColor = .red
b2.bgPropertyColor = .blue
b3.bgPropertyColor = .green
}
}
如何初始化子类按钮,以便我能够在视图控制器上微调每个按钮的属性(背景颜色)?
您可能需要
var bgPropertyColor : UIColor = UIColor.clear {
didSet {
self.backgroundColor = bgPropertyColor
}
}
因为更改 bgPropertyColor
不会像您预期的那样反映到 backgroundColor
,也可能是 属性 没用,因为您可以直接更改 backgroundColor
IB/Code