Swift 的 UIView 子类,在 Nib 中使用
Subclass UIView with Swift, use in Nib
我正在尝试使用 Swift 子 class UIView 并为我的 class 提供一个带有一个参数的初始化。所需的 Init With Coder 初始化程序让我很困惑。事实上,我确实希望能够将我的视图放入 Nib 文件中。我的理解是,这将调用 Init With Coder。有没有什么办法可以用 addl 调用这个初始化器。 params,除了解码器?现在我正在为我的实例变量分配默认值,如下所示,以便代码可以编译。
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文件初始化视图,就没有办法传入任何新颖的参数吗?
从 Nib 创建的视图将始终使用 init(coder:)
初始化。
出于这个原因,您必须要么立即用正确的值初始化所有变量,要么使它们成为可选的。
var dimension = 0
我正在尝试使用 Swift 子 class UIView 并为我的 class 提供一个带有一个参数的初始化。所需的 Init With Coder 初始化程序让我很困惑。事实上,我确实希望能够将我的视图放入 Nib 文件中。我的理解是,这将调用 Init With Coder。有没有什么办法可以用 addl 调用这个初始化器。 params,除了解码器?现在我正在为我的实例变量分配默认值,如下所示,以便代码可以编译。
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文件初始化视图,就没有办法传入任何新颖的参数吗?
从 Nib 创建的视图将始终使用 init(coder:)
初始化。
出于这个原因,您必须要么立即用正确的值初始化所有变量,要么使它们成为可选的。
var dimension = 0