Ios UIButton子类中的自定义属性未初始化
我有一个子类UIButton(TTDayButton),我用一个自定义属性(variant)初始化它。但是,即使我在初始化TTDayButton的新实例的代码中向其传递值,自定义变量属性仍然保持为零。 我错过了什么?谢谢Ios UIButton子类中的自定义属性未初始化,ios,swift,uikit,Ios,Swift,Uikit,我有一个子类UIButton(TTDayButton),我用一个自定义属性(variant)初始化它。但是,即使我在初始化TTDayButton的新实例的代码中向其传递值,自定义变量属性仍然保持为零。 我错过了什么?谢谢 class TTDayButton: UIButton { var variant: SFDays? override init(frame: CGRect) { super.init(frame: frame) configure() } require
class TTDayButton: UIButton {
var variant: SFDays?
override init(frame: CGRect) {
super.init(frame: frame)
configure()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
convenience init(variant: SFDays) {
self.init(frame: .zero)
self.variant = variant
configure()
}
//some functions that use variant to configure the button accordingly.
//crashes here because variant is nil.
}
编辑:添加SFDays的附加代码
enum SFDays: String {
case m = "m.circle"
case t = "t.circle"
case w = "w.circle"
case f = "f.circle"
case s = "s.circle"
}
…还有TTDayButton实例在我的VC上初始化的方式
let testButton = TTDayButton(variant: .m)
我发现你的代码没有问题。。。是否确实要将非null变量传递给此button类?请确保使用的是
init(variant:)
。是的,在使用位置我有:let testButton=TTDayButton(variant:.m)“.m”作为SFDays枚举的一种情况。这就是让我困惑的是它仍然不起作用。你的代码很好,当我尝试时没有发现崩溃,也许你可以给我你的完整代码?@DanielŠlechta崩溃的原因是什么?我在你的代码中没有发现问题。。。是否确实要将非null变量传递给此button类?请确保使用的是init(variant:)
。是的,在使用位置我有:let testButton=TTDayButton(variant:.m)“.m”作为SFDays枚举的一种情况。让我困惑的是,它仍然不起作用。你的代码很好,我尝试时没有发现崩溃,也许你可以给我你的完整代码?@DanielŠlechta崩溃的原因是什么?