MVC设计模式
- iOS中的架构基石
iOS中的视图UIView
- 最基础的视图类,管理屏幕上一定区域的内容展示
- 作为各种视图类型的父类,提供基础的能力
- 外观、渲染、动画
- 相应区域内的事件
-
布局
设置大小、位置统称frame
-
使用栈管理全部的subView
位置重叠的展示最后入栈的
- 可以随时调整位置
-
UIView的生命周期
init
- willMoveToSuperview
- didMoveToSuperview
- willMoveToWindow
-
UIViewController
视图控制器,管理视图View的层级结构
- 自身包含View即DefaultView,可以理解为一个容器
- 管理View的生命周期
- 响应用户操作
- 视图的切换
- 作为一个容器管理和多个Controller的交互和动画
ViewController的生命周期
UIView负责页面内容呈现
- 使用基础的VC管理多个View
-
常用App页面结构分析
单页面展示
- 通过列表展示简介
- 通过较长滚动页面展示内容
多页面管理
管理多个VC的切换
-
使用Navigation构建App的基础交互
UINavigationController
通过栈管理页面间的跳转
- 通常只展示栈顶页面
- Push/Pop操作
- 通过UINavigationBar响应操作,处理VC的切换
-
UINavigationBar
UINavigationController管理
- 顶部UIViewController变化,UINavigationBar则同步变化
实现自己的Navigation
- 使用系统函数实现
相关开源框架和项目
特殊形式的UIView,提供App中展示内容的基础窗口
- 只作为容器,和ViewController一起协同工作
- 通常屏幕上只存在、展示一个UIWindow
创建方式
TabBarController
- NavigationController
Delegate设计模式
UITabBarController
- 设计者
- 提供一些使用者可以自定义的操作
- @optioanl/@required注解
- 提供@property 即 delegate,打通连接
- 在对应的时机,让delegate执行对应方法
- 使用者
- 设置delegate为self
- 按需实现方法