iOS 之视图控制器

2016-03-03  本文已影响120人  CarsonChen

一. 自定义视图(Label与TextField组合视图)

相当于一个视图上自带了两个控件,并且这两个控件均为懒加载模式进行对象创建.自定义视图中的控件均为视图的属性,提高开发效率.

高质量代码的特点:可复用,可移植,精炼(等,高内聚,低耦合).

自定义LTView使用了一种设计模式:复合设计模式.即:A类中使用B类或者更多类作为自己的成员.(实例变量).

二. 视图控制器

视图控制器是应用程序数据与视图之间的重要桥梁.每个iOS应用程序只显示一个用户界面,显示的内容是由控制器或者一组视图控制器协调完成.UIViewController是所有视图控制器的父类.

视图控制器的功能:

1. 控制视图大小变换,布局视图,响应事件;

2. 检测以及处理内存警告;

3. 检测以及处理屏幕旋转;

4. 检测视图切换;

5. 实现模块独立,调高复用性.

在视图控制器的viewDidLoad方法中可以设置视图控制器的背景颜色.

视图控制器的view是通过懒加载来实现的,在view的getter方法中会判断如果视图不存在,则会调用loadView方法去创建一个全屏视图.提供loadView方法调用,是为了方便子类重写方法改变父类中默认的view对象.

三. 视图控制器指定视图

在视图控制器指定自定义视图,重写loadView方法,进行修改成为加载事先设计好的view

四. MVC

MVC是一个框架级的设计模式.Model View Controller

M:主要简历数据模型

V:进行功能展示

C:控制M与V的通信

可以提高系统的可维护性,以及可扩展性.

五. 屏幕旋转

iOS屏幕有4个方向Portrait,UpsideDown,LandSpaceLeft,LandSpaceRight.

检测屏幕旋转:

试图控制器本身能检测到屏幕旋转

supportedInterfaceOrientations的方法 返回值设置为:UIInterfaceOrientationMaskAll 为4方向全部支持.

自适应旋转后屏幕上的空间不发送旋转

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator

size的为翻转后的屏幕尺寸的大小.

六. 内存警告

释放懒加载的资源

//当应用程序接收到内存警告时,会通知所有存在的视图控制器对象,所有存在的视图控制器对象通过此方法判定自己的视图加载过,并且当前没有显示时,暂时释放视图的内存,以减缓内存压力.等到再次被使用时通过懒加载继续加载视图.所以处理内存警告是需要释放可被重建的资源的.

if (self.isViewLoaded && !self.view.window) {

self.view = nil;

}

视图控制器的生命周期:

initWithNibName初始化方法;

loadView;将加载视图

viewDidLoad;加载视图

viewWillAppear;将出现

viewDidAppear;正在出现

viewWillDisAppear;将消失

viewDidDisAppear;正在消失

上一篇 下一篇

猜你喜欢

热点阅读