自定义控制器的View(loadView)及其注意点
自定义控制器的View
loadView
方法
-
简介
- loadView作用:一般用来创建控制器自定义的View,如果实现了loadView,就说明要自定义控制器的View
- loadView调用时间:当控制器的view没有创建的时候,就会调用loadView来创建控制器的view
-
loadView使用注意:如果重写loadView里面没有创建控制器的view,使用self.view,会造成死循环
-
原理
- 1.先去判断当前控制器是不是从storyboard中加载的,如果是,那么会将storyboard中控制器的view设置位当前控制器的view
- 2.判断是不是从xib中加载的view,如果会把xib当中描述的View,设置成当前控制器的VIew
- 3.如果都不是,给你创建一个空的View
注意点:
- 1.如果一个控件是透明的状态,那么它不接受事件
- 2.控制器的View是不透明的,是它的背景颜色是透明的(clearColor)
- 3.控制器的View默认的是懒加载,其中会实现loadView和viewDidLoad方法
- 4.控制器的View加载顺序:loadView -> viewDidLoad -> 代理的东西
-
5.控制器的view决定权:重写loadView > storyboard > nibName >xib
// view懒加载 -(UIView *)view{ if (_view == nil) { [self loadView]; [self viewDidLoad]; } return _view; } // 总结: 所用控制器类下有句代码:self.view.backgroundColor先由loadView方法确定了, 再由viewDidLoad方法确定了,最后就是这句代码确定,所以最终取决于这句代码设置的颜色