iOS Developer程序员

loadView

2016-05-04  本文已影响363人  高俊

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笔记改的,所以很多方面,很不理想,所以抱歉哈,各位
上一篇下一篇

猜你喜欢

热点阅读