我可以在Swift中更简洁地子类化UIView吗?

时间:2016-06-11 22:36:03

标签: swift uiview

在Swift中继承UIView时,您需要具有init函数

override init(frame: CGRect)
{
    super.init(frame:frame)
    initMyStuff()
}

required init?(coder aDecoder: NSCoder)
{
    super.init(coder:aDecoder)
    initMyStuff()
}

override func awakeFromNib()
{
    super.awakeFromNib()
    initMyStuff()
}

internal func initMyStuff()
{
    // Init class variables and setup constraints here
}

当然有更好的方法可以做到这一点。至少,initMyStuff函数的更好的命名约定是什么?也许有一种方法可以扩展UIView,让我可以在自定义类中覆盖一个自定义初始化函数?

1 个答案:

答案 0 :(得分:0)

您可以创建一个方便的初始值设定项,如下所示:)

convenience init(someValue: String) {
    self.init(frame : CGRectZero)
    .....
}