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已经呈现,再改变,容易给人卡顿的错觉。

     

  • 相关阅读:
    深度优先搜索查找图中的所有连通分量
    广度优先搜索BFS-图
    深度优先搜索DFS-图
    稀疏向量算法
    zip函数
    函数(三)>>内置函数
    函数(二)
    面向对象1
    面向对象2
    函数(上)
  • 原文地址:https://www.cnblogs.com/beddup/p/4610917.html
Copyright © 2011-2022 走看看