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方便出来数据。
     
  • 相关阅读:
    Xamarin.Forms移动开发系列1:介绍和安装
    网络协议 1
    07 MySQL之索引原理
    06 Navicat安装及简单使用
    05 Mysql之多表查询
    04 Mysql之单表查询
    03 Mysql数据库之(行记录)详细操作
    02 Mysql之库表简易操作
    01 Mysql数据库初识
    07 Python之协程
  • 原文地址:https://www.cnblogs.com/pengsi/p/8721249.html
Copyright © 2011-2022 走看看