iOS中的生命周期

iOS中的生命周期

[toc]

APP 生命周期

五种状态

状态转换

App 在5种状态间的转换流程图

发生状态转换时大多数都会调用 delegate 对象对应的方法来响应 app 的状态改变,下面是 delegate 对象的方法:

  • application:willFinishLaunchingWithOptions: 这个方法是你在启动时的第一次机会来执行代码

  • application:didFinishLaunchingWithOptions: 这个方法允许你在显示 app 给用户之前执行最后的初始化操作

application:willFinishLaunchingWithOptions、application:didFinishLaunchingWithOptions 这两个方法越简单越好,因为 app 从启动到可以响应的时间越短越好,非必要的事情可以延迟或者起子线程执行,超过五秒没有完成这两个函数,系统将 kill app

  • applicationDidBecomeActive: app 已经切换到 active 状态后需要执行的操作

  • applicationWillResignActive: app 将要从前台切换到后台时需要执行的操作

  • applicationDidEnterBackground: app 已经进入后台后需要执行的操作(该方法需要五秒内返回,否则应用程序被终止并从内存中清除)

  • applicationWillEnterForeground: app 将要从后台切换到前台需要执行的操作,但 app 还不是 active 状态

  • applicationWillTerminate: app 将要结束时需要执行的操作

注意事项

与 app 生命周期有关的几个时间规则

其中,对启动时间的限制是为了追求更好的用户体验,而其它几项基本是为了更好地管理、使用系统有限的资源。

application:willFinishLaunchingWithOptionsapplication:didFinishLaunchingWithOptions 的第二个参数 launchOptions 准确记录了 app 启动原因以及相应的参数信息。如,若 launchOptions 中存在以UIApplicationLaunchOptionsURLKey 为 key 的键值对,表明 app 是由 openurl 启动的。

UIViewController 及其生命周期

前言

在 iOS 开发中 UIViewController 扮演者非常重要的角色,它是视图 view 和数据 model 的桥梁,通过 UIViewController 的管理有条不紊的将数据展示在视图上。作为 UIKit 中最基本的一个类,一般复杂的项目都离不开 UIViewController 作为基类。所以了解 UIViewController 的整个生命周期是有必要的。

生命周期

  1. loadView()
  • view 就加载出来了 可以在这里直接替换 View 比如你把这个 View 转换成了 tableView
  1. viewDidLoad()
  • view 完成加载
  1. viewWillAppear(_ animated: Bool)
  • view 即将显示
  1. viewWillLayoutSubviews()
  • 将要开始布局子 view
  • 当页面发生布局改变的时候会调用这个方法 会多次调用
  • 同 LayoutSubviews Cell 的
  1. viewDidLayoutSubviews()
  • 已经布局子 view
  • 上面方法完成就会调这个
  1. viewDidAppear(_ animated:Bool)
  • view 完成显示

7.viewWillDisappear

  • view 将要消失

8.viewDidDisappear

  • view 完成消失
------------- 本文结束 感谢阅读 -------------