loadView

作者: 高俊 | 来源:发表于2016-05-04 22:53 被阅读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笔记改的,所以很多方面,很不理想,所以抱歉哈,各位

    相关文章

      网友评论

        本文标题:loadView

        本文链接:https://www.haomeiwen.com/subject/nptdrttx.html