gpt4 book ai didi

swift - 使用 UILabel 和 UITextdfield 创建组件

转载 作者:搜寻专家 更新时间:2023-11-01 06:12:11 26 4
gpt4 key购买 nike

我是 Swift 的新手,来自网络开发,所以我对组件很熟悉。我正在尝试创建一个表单,并希望在其他 View 中重用文本字段和标签。我创建了一个继承自 UIView 的新类,并希望覆盖 init 以创建新属性集。

到目前为止我的代码

final class TextFormField: UIView {
var labelText: String
var secureText: Bool
var keyboardType: UIKeyboardType

override init(frame: CGRect) {
super.init(frame: frame)
}
init(labelText: String, secureText: Bool, keyboardType: UIKeyboardType){
self.labelText = labelText
self.secureText = secureText
self.keyboardType = keyboardType
super.init()
}
convenience init() {
self.init()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

我现在得到的错误是必须在第二次初始化时调用父类(super class)“UIView”的指定初始化程序

我如何重写 init 以获取更多 3 个参数?我需要延期吗?

提前致谢

最佳答案

您应该摆脱所有不必要的初始化器,并确保您的自定义 init 方法调用 super 的指定初始化器之一。

final class TextFormField: UIView {
var labelText: String
var secureText: Bool
var keyboardType: UIKeyboardType

init(labelText: String, secureText: Bool, keyboardType: UIKeyboardType){
self.labelText = labelText
self.secureText = secureText
self.keyboardType = keyboardType
super.init(frame: .zero)
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

关于swift - 使用 UILabel 和 UITextdfield 创建组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53535366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com