我正在尝试使用Swift继承UIView,并为我的类提供一个带有一个参数的init。所需的 Init with Coder 初始化程序正在绊倒我。事实上,我希望能够将我的视图放到Nib文件中。我的理解是,这将调用 Init with Coder 。是否有任何方法可以使用addl调用此初始化程序。除了解码器之外的参数?现在我正在为我的实例变量分配默认值,如下所示,这样代码就可以编译。
class ClassName: UIView {
var dimension: Int = {
return 5
}()
}
我的初始化程序设置如下所示。
init(Int: dimension) {
self.dimension = dimension
super.init(frame: CGRectZero)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
如果通过Nib文件初始化视图,是否真的无法传递任何新的参数?
答案 0 :(得分:1)
从Nib创建的视图将始终使用init(coder:)
进行初始化
出于这个原因,您必须立即使用适当的值初始化所有变量,或者使它们成为可选项。
var dimension = 0