Swift子类UIView

我想子类化UIView并显示类似视图的登录名。我已经在Objective-

C中创建了它,但是现在我想将其移植到Swift。我不使用情节提要,所以我用代码创建了所有UI。

但是第一个问题是我必须执行initWithCoder。我给了它一个默认的实现,因为它不会被调用。现在,当我运行程序时,它崩溃了,因为我也必须实现initWithFrame。现在我得到了:

override init() {

super.init()

println("Default init")

}

override init(frame: CGRect) {

super.init(frame: frame)

println("Frame init")

}

required init(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

println("Coder init")

}

我的问题是我应该在哪里创建文本字段等…,如果我从不实现框架和编码器,该如何“隐藏”呢?

回答:

我通常这样做,有点冗长。

class MyView: UIView {

override init(frame: CGRect) {

super.init(frame: frame)

addBehavior()

}

convenience init() {

self.init(frame: CGRect.zero)

}

required init(coder aDecoder: NSCoder) {

fatalError("This class does not support NSCoding")

}

func addBehavior() {

print("Add all the behavior here")

}

}

let u = MyView(frame: CGRect.zero)

let v = MyView()

(编辑:我已经编辑了答案,以使初始化程序之间的关系更加清晰)

以上是 Swift子类UIView 的全部内容, 来源链接: utcz.com/qa/406706.html

回到顶部