iOS10 UI教程视图的生命周期
来源:互联网 发布:access数据库程序设计 编辑:程序博客网 时间:2024/06/05 11:08
iOS10 UI教程视图的生命周期
说到视图的生命周期一般都是指视图控制器的视图生命周期。在视图的声明周期中最主要的有8个方法,分别为loadView()、viewDidLoad()、viewWillAppear(_:)、viewWillLayoutSubviews()、viewDidLayoutSubviews()、viewDidAppear(_:)、viewWillDisappear(_:)、viewDidDisappear(_:),对于这几个方法的说明如表1-5所示。视图的生命周期的流程以及这些方法的调用时机如图1.29所示。
表1-5 方法介绍
方法
功能
loadView()
载入视图,通常这一步不需要去干涉。
viewDidLoad()
载入完成,可以进行自定义数据以及动态创建其他控件
viewWillAppear(_:)
视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
viewWillLayoutSubviews()
即将开始子视图位置布局
viewDidLayoutSubviews()
用于通知视图的位置布局已经完成
viewDidAppear(_:)
视图已在屏幕上渲染完成
viewWillDisappear(_:)
视图即将消失
viewDidDisappear(_:)
视图已经消失
图1.29 生命周期
注意:在图中给出了这些方法的调用顺序,当然需要注意这几个方法的调用是由iOS系统决定的,不需要读者自己调用。
【示例1-12:LifeCycle】以下将使用代码说明视图的生命周期中方法的执行顺序。具体的操作步骤如下:
(1)打开Main.storyboard文件,从视图库中拖动Button按钮控件到主视图中,将Button的标题改为“移除视图”。
(2)将Button按钮控件进行动作removeView的声明和关联。
(3)打开ViewController.swift文件,编写代码,通过输出语句查看视图生命周期中方法的顺序。代码如下:
import UIKitclass ViewController: UIViewController { //载入完成 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. print("viewDidLoad")}//轻拍按钮,移除视图控制器的视图 @IBAction func removeView(_ sender: AnyObject) { view.removeFromSuperview()}//载入视图 override func loadView() { super.loadView() print("LoadView")}//视图将出现在屏幕之前 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) print("viewWillAppear")}//视图已在屏幕上渲染完成 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(true) print("viewDidAppear")}//即将开始子视图位置布局 override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() print("viewWillLayoutSubviews")}//视图的位置布局已经完成 override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() print("viewDidLayoutSubviews")}//视图即将消失 override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(true) print("viewWillDisappear")}//视图已经消失 override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(true) print("viewDidDisappear") }……}
此时运行程序,会看到如图1.30所示的效果。不仅如此,还会在应用程序输出窗口输出以下内容:
LoadViewviewDidLoadviewWillAppearviewWillLayoutSubviewsviewDidLayoutSubviewsviewDidAppear
当开发者轻拍“移除视图”按钮后,会看到视图控制器的主视图被移除,如图1.31所示。不仅如此,还会在应用程序输出窗口输出以下内容:
viewWillDisappearviewDidDisappear
图1.30 初始状态 图1.31 移除主视图
iOS10 UI教程视图的生命周期
相关阅读:iOS10 UI教程视图的绘制与视图控制器和视图
- iOS10 UI教程视图的生命周期
- iOS10 UI教程视图的几何形状
- iOS10 UI教程视图的中心位置
- iOS10 UI教程视图的边界与视图的框架
- iOS10 UI教程视图调试
- iOS10 UI教程视图和子视图的可见性
- iOS10 UI教程禁用视图与用户的交互
- iOS10 UI教程视图的绘制与视图控制器和视图
- iOS10 UI教程基改变视图的外观与视图的可见性
- iOS10 UI教程层次结构的事件
- iOS10 UI教程子视图和父视图UI层次结构和Views继承
- IOS开发UI-------视图的生命周期
- iOS10 UI教程管理层次结构
- iOS之UI随笔-视图控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- 视图控制器的生命周期
- JAVA实现页面置换算法(OPT,FIFO,LRU)
- 1.1.1 centos 下安装 zeroice
- 使用ListView
- 快速获取Qt编译Release程序所依赖的qt库
- LD_LIBRARY_PATH环境变量设置及Linux动态库查找方法
- iOS10 UI教程视图的生命周期
- jQuery选择器大全
- C#仿sqlServer中的checksum
- Java程序更新文件自动迁移工具(迁移后自启动)
- Fragment详解(1)
- Windows 10「设置」应用完整MS-Settings快捷方式汇总
- 爽翻天!告别Java。一起来使用kotlin开发完整客户端
- 前端中的MVC
- Ubuntu SSH连接不成功问题