UI_自定义视图、视图控制器

自定义视图

视图控制器

视图控制器指定自定义View

检测屏幕旋转

处理内存警告

容器视图控制器


自定义视图 

自定义视图:系统标准UI之外,自己组合而出的新的视图。 

自定义视图步骤:(使用了复合设计模式

根据需求不同,自定义视图继承的类也有所不同。一般自定义的视图会继承于UIView。
    1. 创建一个UIView子类。
    2. 在类的初始化方法中添加子视图
    3. 类的.h文件提供一些接口(方法),便于外界操作子视图
label-textField视图(用LTView类代表)
    1. 创建一个LTView类继承与UIView
    2. 将LTView作为一个容器,在LTView的初始化方法中创建并添加label和textField
    3. 这时,LTView就变成一个具有label和textField的视图了

           注意:需要对LTView中的label和textField进行一定的控制,比如:设置label中text,获取textField中的text,给textField指定delegate,设置textColor等 


视图控制器

视图控制器的概述:

    1. 控制视图显示,响应事件
    2. 分担AppDelegate的工作
    3. 实现模块独立,提高复用性。

 

视图控制器功能

    1. 控制视图大小变换、布局视图、响应事件
    2. 检测以及处理内存警告。
    3. 检测以及处理屏幕旋转
    4. 检测视图切换

 

视图控制器的使用:
  1. 定义UIViewController的子类
  2. 创建视图控制器对象,作为window的根视图控制器
  3. 在viewDidLoad中使用默认创建好的视图对象view


视图控制器自定义View 

为什么使用自定义view:

    1. UIViewController自带一个空的View,与需求不符。
    2. 视图控制器只负责控制视图显示,响应事件 

 

如何设置: 

    1. 自定义视图继承UIView。在初始化方法中添加子视图控件。
    2. 重写controller的loadView方法。创建自定义视图对象,并指定为controller的view
    3. 将子视图控件对象设置为自定义视图类的属性,在viewDidLoad方法中进行设置:添加action、设置delegate等
    4. 在controller中添加按钮点击事件和代理方法的实现。

 

创建视图控制器和他的自定义视图
1. 创建视图控制器类
2. 创建自定义视图类
3. 将自定义视图的View替换自带的View
3.1 引入
3.2 写属性
3.3 dealloc
3.4 重写loadView
4. 设置好页面
4.1 声明属性
4.2 dealloc方法
4.3 创建视图元素,然后添加到页面上
5. 给button绑定事件(Controller里)
5.1 绑定事件写在 viewDidLoad
5.2 在viewDidLoad方法下面去实现事件

检测屏幕旋转 

检测屏幕旋转:

1 //视图控制器本身能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写几个方法:
2 supportedInterfaceOrientations(设置设备支持旋转的方向)
3 willRotateToInterfaceOrientation:duration:(暂停音乐、关闭视图交互等)
4 willAnimateRotationToInterfaceOrientation:duration:(添加自定义动画等)
5 didRotateFromInterfaceOrientation:(播放音乐、打开视图交互等)
视图处理:
    1. 视图控制器会自动调整view的大小适应屏幕旋转
    2. bounds被修改,触发view的layoutSubviews方法
    3. view重写layoutSubviews方法,根据设备方向,重新布局
    4. [UIApplication shareApplication].statusBarOrientation提供设备当前方向

处理内存警告 

    1. 控制器能监测内存警告,以便我们避免内存不够引起的crash
    2. 在定义的controller子类中重写didReceiveMemoryWarning方法
    3. 释放暂时不使用的资源(数据对象、图像)

容器视图控制器 

1 常用方法:
2 self.view 显示:viewWillAppear:和viewDidAppear:
3 self.view 消失:viewWillDisappear:和 viewDidDisappear:

  • 当self.view添加到父视图上时,执行appear方法: 
  • 当self.view从父视图上移除时,执行disappear方法

 

posted @ 2015-04-11 15:07  captivity  阅读(145)  评论(0)    收藏  举报