UIView在swift中的指定初始值设定项
所以我已经像这样子类似UIView
class CustomView: UIView { }
我可以做类似的事情
let customView = CustomView()
但是当我重写我认为是UIView
的两个指定的初始化,即init(frame:)
和init(coder:)
像这样
class CustomView: UIView { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) self.backgroundColor = UIColor.redColor() } override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = UIColor.redColor() } }
我不能再像这样抱怨init()
不存在了
let customView = CustomView()
我的理解是,如果我覆盖所有指定的初始化器,我应该inheritance所有的便利初始化器。
所以我的问题是。 init()
不是UIView上的便利初始值设定项吗? 或者UIView上有另一个指定的初始值设定项,我还没有覆盖呢?
init
不是UIView上的便利初始值设定项。 init
不是UIView上的初始化器! 它是超类NSObject的一个初始化器,UIView只是inheritance它。 它是NSObject上的一个指定的初始值设定项。 所以当你实现了一个指定的初始化器时,你可以切断指定初始化器的inheritance – 包括init
。