我有一个自定义UITextField
,我想像这样声明它:
let textField = StandardTextField() // pretty much like UITextField()
我的自定义文本字段如下所示:
class StandardTextField: UITextField {
init(frame: CGRect, size: CGFloat) {
super.init(frame: frame)
// some initialization
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
这给了我一个错误,因为TextField
没有没有参数的初始化程序。我尝试添加:
init() {
super.init()
}
但这是不可能的,因为super.init()
它不是指定的初始化程序。我该如何实现?
您可能正在寻找便利初始化程序。但是您将需要为UITextField定义默认的帧大小。尝试这样:
class StandardTextField: UITextField {
convenience init() {
self.init(frame: CGRect(x: 0, y: 0, width: 200, height: 50))
// some initialisation for init with no arguments
}
override init(frame: CGRect) {
super.init(frame: frame)
// some initialisation for init with frame
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句