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