控制器的view的创建

1.控制器view的创建(空项目)

2.研究控制器view的加载,首先需要自定义控制器view,作为根控制器。

3.证明控制器的view是透明的: 直接通过alloc,init创建的控制器的view默认是透明的

4.通过storyboard加载的控制器view,和storyboard描述的一样。

5.重写控制器的loadView,不会去加载storyboard.

6.解释loadView方法

1> loadView作用:一般用来创建自定义的view

2> loadView什么时候调用:当控制器的view没有创建的时候,就会调用loadView

去创建控制器的view.

3> loadView使用注意:如果重写loadView里面没有创建控制器的view,就不能使

用self.view,会造成死循环。

7.通过xib加载控制器的view

1>取一个CZViewController123的xib描述控制器的view,通过这个xib加载控制器的view

2>取一个CZViewController的xib描述控制器的view,通过这个xib加载控制器的

view,不用告诉控制器去加载哪个xib,会自动去加载CZViewController这个xib。

3>取一个CZView的xib描述控制器的view,通过这个xib加载控制器的view,不用告

诉控制器去加载哪个xib,优先去加载CZView这个xib。

8.PPT演示LoadView的默认做法。

8.1>控制器View的决定权:重写LoadView>storyboard>nibName>xib

9.控制器的view是延迟加载的

9.1>验证控制器的view延迟加载,只有在窗口显示的时候,才会调用loadView

方法。

9.2>用到控制器view的时候才会加载控制器的view,设置控制器view的背景颜色

9.3>通过设置控制器view的颜色,引出两个疑问。

1>重写loadView,不是不会加载xib了吗,控制器的view由loadView决定,

loadView显示什么颜色,就是什么颜色。

2> loadView只是创建控制器View,并不能决定控制器的view的颜色。

3>理解loadView的调用时刻: 第一次调用self.view, 底层会调用LoadView

方法,创建控制器的view,这时候的view是LoadView的颜色,但是vc.view.backgroundColor,是拿控制器的view又设置一次颜色,把LoadView设置的颜色给覆盖了。

4>在viewDidLoad也设置颜色,还是vc.view.backgroundColor决定,因为vc.view就是获取控制器的view,只有控制器的view加载完成之后,才能获取

到,因此先调用viewDidLoad。

10.如何快速生成一个xib描述控制器的view,之前还要在xib拖视图,设置xib描述哪个

控制器,很麻烦。

1>定义新的控制器的时候,勾选xib,会自动搞一个xib描述控制器的view.

2>会自动生成一个和控制器同名的xib,并且里面设置好了。

学习方法:学习原理,不要一开始就用最快的方式创建xib,开发的时候才使用最快的方式。

你可能感兴趣的:(控制器的view的创建)