视图控件器的view是懒加载的,用到才加载.
举个例子:
①若在- application:didFinishLaunchingWithOptions:方法设置window根控制器vc,然后调用.
vc.view.backgroundColor = [UIColor redColor]; 设置vc背景色颜色
②在vc -loadView 设置定义view,并设置自定义view的backgroundColor为黄色.
③然后在viewDidLoad,设置self.view.backgroundColor为绿色.那个生效.
答案:是红色.
解析: ①中vc.view 就会调用 ②中-loadView方法.然后调用③中viewDidLoad方法.这个方法是view加载完毕的时候调用.这个时候①才执行了.view .background最后执行,故颜色为红色.
- loadView调用时机: 视图第一次被加载的时候.
- 方法的目的是: 加载自定义的view.如view是imageView/WebView.起到节省内存作用.
该方法是内不能调用view的get方法,不然会引起死循环,程序奔溃.
- 若没有重新,自定义视图加载顺序是:
3.1 看视图控制器是否在StoryBoard中设置控制器VC,并绑定view.若有,则从StoryBoard加载对应的view.(StoryBoard一般是拖入控制器)
3.2 看视图控制器是否在xib中(view设置了fileOwner),并指定了view.
,如有则从xib中加载指定的view.(xib中一般是拖入view)
3.3 都没有的话,就创建了一个空白的view.(view的背景颜色是透明的,并不是view是透明的)
view是透明的,就无法进行交互(无法进行响应事件), view的背景色是透明的就可以交互.
若本文对您有所帮助,请点个赞支持下.谢谢.
网友评论