2

我正在尝试使用 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 文件初始化视图,是否无法传入任何新颖的参数?

4

1 回答 1

1

从 Nib 创建的视图将始终使用init(coder:).
出于这个原因,您必须立即使用适当的值初始化所有变量或将它们设为可选。

var dimension = 0
于 2015-12-08T16:59:46.447 回答