• Swift 4.0 + Ipad开发项目中值得注意知识点


    1.注意Xib的约束和代码的约束,注意适配问题;

    2.设置view的frame可以使用view.frame.maxX实现布局;

    3.UIStackView在xib中的使用,可以很好的实现约束,布局和屏幕适配;

    4.viewDidLoad和viewWillLayoutSubviews写view.frame区别:

    这个就涉及到控制器的生命周期问题:

        ARC环境

    • 单个viewController的生命周期
      • initWithCoder:(NSCoder *)aDecoder:(如果使用storyboard或者xib)
      • loadView:加载view
      • viewDidLoad:view加载完毕
      • viewWillAppear:控制器的view将要显示
      • viewWillLayoutSubviews:控制器的view将要布局子控件
      • viewDidLayoutSubviews:控制器的view布局子控件完成
        这期间系统可能会多次调用viewWillLayoutSubviews 、 viewDidLayoutSubviews 俩个方法
      • viewDidAppear:控制器的view完全显示
      • viewWillDisappear:控制器的view即将消失的时候
        这期间系统也会调用viewWillLayoutSubviews 、viewDidLayoutSubviews 两个方法
      • viewDidDisappear:控制器的view完全消失的时候
    • 多个viewControllers跳转
      • 当我们点击push的时候首先会加载下一个界面然后才会调用界面的消失方法
      • initWithCoder:(NSCoder *)aDecoder:ViewController2 (如果用xib创建的情况下)
      • loadView:ViewController2
      • viewDidLoad:ViewController2
      • viewWillDisappear:ViewController1 将要消失
      • viewWillAppear:ViewController2 将要出现
      • viewWillLayoutSubviews ViewController2
      • viewDidLayoutSubviews ViewController2
      • viewWillLayoutSubviews:ViewController1
      • viewDidLayoutSubviews:ViewController1
      • viewDidDisappear:ViewController1 完全消失
      • viewDidAppear:ViewController2 完全出现
    • 小结:
      -整个控制器声明周期: viewDidLoad -> viewWillAppear -> viewWillLayoutSubviews -> viewDidLayoutSubviews -> viewDidAppear -> viewWillDisappear -> viewDidDisappea
    5.UIView的setNeedsDisplay和setNeedsLayout方法:
     
    首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,
    就可以 处理子视图中的一些数据。
    综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。
     
  • 相关阅读:
    Dictionary用法详解
    List与IList的区别
    接口
    C# List<T>用法详解
    c#FileStream文件读写
    学习如何用VS2010创建ocx控件
    sql server零碎知识
    BinaryWriter和BinaryReader用法
    通讯录源程序分析
    美丽说
  • 原文地址:https://www.cnblogs.com/pengsi/p/8721249.html
Copyright © 2020-2023  润新知