zoukankan      html  css  js  c++  java
  • 自定义控制器的View(loadView)及其注意点

    自定义控制器的View

    loadView方法

    • 简介

      • loadView作用:一般用来创建控制器自定义的View,如果实现了loadView,就说明要自定义控制器的View
      • loadView调用时间:当控制器的view没有创建的时候,就会调用loadView来创建控制器的view
      • loadView使用注意:如果重写loadView里面没有创建控制器的view,使用self.view,会造成死循环

    • 原理

      • 1.先去判断当前控制器是不是从storyboard中加载的,如果是,那么会将storyboard中控制器的view设置位当前控制器的view
      • 2.判断是不是从xib中加载的view,如果会把xib当中描述的View,设置成当前控制器的VIew
      • 3.如果都不是,给你创建一个空的View

    注意点:

    • 1.如果一个控件是透明的状态,那么它不接受事件
    • 2.控制器的View是不透明的,是它的背景颜色是透明的(clearColor)
    • 3.控制器的View默认的是懒加载,其中会实现loadView和viewDidLoad方法
    • 4.控制器的View加载顺序:loadView -> viewDidLoad -> 代理的东西
    • 5.控制器的view决定权:重写loadView > storyboard > nibName >xib

      // view懒加载
      -(UIView *)view{
      if (_view == nil) {
          [self loadView]; 
          [self viewDidLoad];
      }
      return _view;
      }
      // 总结:
      所用控制器类下有句代码:self.view.backgroundColor先由loadView方法确定了,
      再由viewDidLoad方法确定了,最后就是这句代码确定,所以最终取决于这句代码设置的颜色
  • 相关阅读:
    netcore保持活动状态超时设置
    使用 .net core 自定义项目模板
    Prometheus(普罗米修斯)——适合k8s和docker的监控系统
    移动端调试神器vConsole--腾讯的
    .netcore项目部署到linux的docker里后,速度异常的慢
    GIT删除本地tag和远程tag
    .netcore里使用StackExchange.Redis TimeOut 情况解决方法
    asp.netcore Log4Net连接kafka的方法
    asp.netcore 高并发下使用HttpClient的方法
    [离散时间信号处理学习笔记] 7. z变换
  • 原文地址:https://www.cnblogs.com/LongLJ/p/5008496.html
Copyright © 2011-2022 走看看