使用Swift子类UIView,在Nib中使用

时间:2015-12-08 16:53:04

标签: xcode swift uiview nib initwithcoder

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

1 个答案:

答案 0 :(得分:1)

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

var dimension = 0