zoukankan      html  css  js  c++  java
  • iOS开发总结(A0)- ViewController Life Cycle 及主要阶段的任务

    1. 在viewDidLoad 时,geometry并未最终确定(此时ViewController 的 view 刚刚加载完成),

    (如果使用storyboard, view 的大小是storyboard中vc 的大小(不确定最新的系统是否有变化))

    这时如果依赖 View 的 frame 或者 bounds 进行某种操作,是不可靠的

    2. 在viewDidLoad 之前,storyboard 中的Outlet 还未设置, 当用segue 转场时,若要对Outlet 属性进行操作,是无效的。

    3. 只要geometry变化,viewWillLayoutSubviews 和 viewDidLayoutSubviews 就会调用(vc 先调用viewWillLayoutSubviews,View Controller 的 view 再调用 layoutSubview,最后调用viewDidLayoutSubviews)。

    在viewWillAppear 和viewDidAppear 之间可能会调用多次, 因此最好不用在这两个方法中进行耗时的操作。

    一般在以上方法中需要做什么:

    1. viewDidLoad

    初始化设置 view controller(如从本地或网络读取数据)

    布局,添加各种event, gesture等

    如上所述,不要再这里初始化任何geometry相关的内容,因为geometry未确定

    2. viewWillAppear, viewDidAppear,viewWillDisappear,viewDidDisappear

    增加和移除observer,应配对出现,以上的方法是很好的时机;

    在viewDidAppear 中最好不要做改变UI相关的事情,因为UI已经呈现,再改变,容易给人卡顿的错觉。

     

  • 相关阅读:
    博客园样式设置
    最坏情况为线性时间的选择算法
    棋盘覆盖
    矩阵乘法的Strassen算法及时间复杂度
    大整数乘法及算法时间复杂度
    全排列问题的递归算法(Perm)
    python的lambda
    python的zip函数
    python操作队列
    mysql基础命令
  • 原文地址:https://www.cnblogs.com/beddup/p/4610917.html
Copyright © 2011-2022 走看看