我使用代码创建UIViewController
的视图(包括子视图),以下是我的做法:
override
loadView()
class MYViewController: UIViewController { var myView: MyView! { return self.view as MyView } override func loadView() { view = MyView() } }
这是我创建自定义视图的方法:
class MyView: UIView {
// MARK: Initialization
override init (frame : CGRect) {
super.init(frame : frame)
addSubviews()
setupLayout()
}
convenience init () {
self.init(frame:CGRect.zero)
}
required init(coder aDecoder: NSCoder) {
fatalError("This class does not support NSCoding")
}
// MARK: Build View hierarchy
func addSubviews(){
// add subviews
}
func setupLayout(){
// Autolayout
}
// lazy load views
}
我为所有的View Controllers 这样做,但我正在寻找更优雅的方法,因为这个过程很重复。所以是否有一种通用的解决方案呢?比如创建一个超级抽象类、或者创建UIViewController和UIView的扩展协议?我刚开始学习Swift,我认为Swift可以用它现代的模式来实现更好的优雅解决方案。