zoukankan      html  css  js  c++  java
  • 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方便出来数据。
     
  • 相关阅读:
    vue 下拉框单选、多选以及默认值
    python 查询每周最后一个工作日
    微信开发
    win7 实用
    A Mixed Flash Translation Layer Structure for SLC-MLC Combined Flash Memory System
    暑假--升级攻击家庭wifi
    A New 3-bit Programming Algorithm using SLC-to-TLC Migration for 8MBs High Performance TLC NAND Flash Memory
    FTL方面综述
    Linux 脚本
    FTL-SLC&MTC&TLC
  • 原文地址:https://www.cnblogs.com/pengsi/p/8721249.html
Copyright © 2011-2022 走看看