1.自定义loadView
在我们的控制器被创建之后, 就会自动生成一个方法(ViewDidLoad)
而这个方法对应的就是loadView, 就是创建View
所以我们每一个控制器在被创建之后 , 就会自动创建View
而今天我们将要学就是这个LoadView方法
首先, 我们先创建一个继承自UIView的类(GJView) 在设置这个View的控制器
加载控制器View.一但重写了此方法, 系统就不会自动帮你创建View
1.先去判断是否从StoryBoard当中加载的控制器.如果是
就从Storyboard当中创建控制器的View
2.如果不是,再去判断是否通过xib描述控制器的View, 如果是
那么就从xib当中创建控制器的view
3.如果也不是从Xib里面创建
那么系统会自动创建一个空的View.赋值给当前控制器的View.
override func loadView() {
let vcView = UIView()
view = vcView
}
注意的我们在实现这个方法之前, 我们的控制器会自动实现
这个方法而且会帮助我们创建View
一旦我们自己实现这个方法
系统不会帮助我们创建View了, 所以这就靠我们自己创建了
而上面的代码就是依靠我们vcView来创建一个View
1.当控制器一开始展示一个图片的时候.
2.如果是控制器一开始就要展示一个网页.
我们就可以在ViewDidLoad方法中写上这样代码:
view.backgroundColor = UIColor.blueColor()
但是大家可以想一想, 如果我们想在在这个View上设置一张图片
我们也可以这样做, 直接在我们的LoadView将我们的上面的代码写在那个方法里面
2. 系统在设置控制器的时候 底层默认做法:
判断下当前的控制器是不是从StoryBoard当中加载的.
如果是,它就会StoryBoard加载的控制器View
设为当前控制器的View.
如果不是从StoryBoard当中加载的
还会判断当前是不是从Xib里的View.
如果是Xib,就会把xib描述的View,设置当前控制器的View.
如果也不是,它就会创建一个空的View.
3.系统何时调用我们的loadView方法
我们将在这三个方法中都写上了关于背景颜色的改变
我们看看最后, View会显示什么样的颜色
从而判断, 他的谁是最后一个调用
然后, 我们也可以依靠断点来判断谁是第几个调用的
总而言之,我们的View是什么时候使用, 什么时候创建(就类似与我们以前的数组的懒加载)
顺便提一句
在我们观察控制器的View的时候, 总是看不到我们控制器的颜色
但是不要以为我们的控制器View是透明的, 而只是他的背景颜色是透明的
作者说:
很抱歉, 我现在也只是在尝试着用Swift写代码,而且Swift中好多东西,还不懂
还有这个笔记是利用前面我的OC笔记改的,所以很多方面,很不理想,所以抱歉哈,各位
网友评论