View Controller Programming Gui

2016-10-23  本文已影响30人  47号同学

前言:最近开始想巩固一下 iOS 编程基础,所以决定先从 UI 部分开始,重新去认识。在想这么做的时候,我选择了阅读官方文档,其实官方文档是一种非常棒的学习材料(这句就是废话),但是碍于语言和心理等等原因,大部分人都选择阅读博客等,而忽略了官方文档。当你阅读了大牛的博客后,回过头来就会发现,其实蛮多内容都是出自官方文档,所以各位应该好好利用官方文档。

The Role of View Controllers

VC 所扮演的角色:它在我们的 APP 中不可缺省的一部分,其主要任务有如下:

  • 通常响应底层数据的更新,以至更新views的内容
  • 响应用户与试图的互动
  • 调整视图大小和管理整个界面的布局
VC 的分类:
  • Content view controllers (内容控制器):管理应用中分散的内容(比如一个VC 中有各种各样的 views等),在 APP 中所创建的 VC 基本是这个类型。
  • Container view controllers(容器控制器):从其他视图中(正如所知道的子控制器),以至在导航控制器展示或是将这些控制器的内容不同方式展示。

如果想详细了解两种控制器的区别,点这里区别

VC 视图层级

VC 最重要的任务就是管理视图的层级关系,每个 VC 都有一个根视图 (root view ),其形式如树状图,root view 是树根,是所有 views 的容器,也是 VC 的 view 属性。

VCPG_structure-of-navigation-interface_5-1_2x.png
VC 加载方式

VC 是懒加载的方式,当一次使用到 view 这个属性的时候 VC 才被创建。下面就介绍几种 VC 的创建方式:

处理视图相关的通知

当视图可视性发生变化的时候,VC 会自动调用相应的办法去处理和响应视图的变化。如下图展示了views 的状态形式和之间的转化:

VCPG_structure-of-navigation-interface_5-1_2x.png

由上图可知:不是每个 “will” 状态仅仅只对应一个 “did” 状态,还要注意 Appearing & Disappearing 两者之间的状态转换。还有,你在 “will” 中开启的任务,同样值得注意的是,不仅仅在 “did” 中结束,还应在相反状态的 “will” 中结束。

root VC

正如 VC 一样,VC 管理着其视图的关系,那么相对应地也会有一种 VC 管理着整个 APP 的 VC 层级关系,那就是 root VC。

VCPG-container-and-presented-view-controller_2-4_2x.png

如上图所示,root VC 其实就是前面所说的 Container view controller。

尾巴:本文是记录自己的一些学习笔记,便于日后翻阅。如果文中有不正之处,请联系并指出,谢谢。

上一篇 下一篇

猜你喜欢

热点阅读