iOS--UIView与UIViewController

2016-07-07  本文已影响130人  空白Null

一、UIViwe基本概念

1、iPhone上看到的控件大部分都是UIView的子类

2、UIView的三个作用

布局、动画、事件传递

二、UIView的常用方法

UIKit是一个提供了在iOS上实现图形,事件驱动程序的框架,能看到的到的试图都在UIKit框架中

UIView是视图的基类

1、 基本的添加和删除

// 添加子视图

addSubview:

// 视图插入到指定索引位置

insertSubview:atIndex:

// 视图插入指定视图之上

insertSubview:aboveSubview:

// 视图插入指定视图之下

insertSubview:belowSubview:

// 把视图移动到最顶层

bringSubviewToFront:

// 把视图移动到最底层

sendSubviewToBack:

//把两个索引对应的视图调换位置

exchangeSubviewAtIndex:withSubviewAtIndex

// 把视图从父视图中移除

removeFromSuperview

2、查找试图

viewWithTag

subViews

3、常用属性

alpha                  透明度

backgroundColor        背景颜色

subViews              子视图集合

hidden                是否隐藏

//标签值

tag

//父视图

superview

//是否响应触摸事件

userInteractionEnabled

4、坐标系统变换

在OC中,通过transform属性可以修改对象的平移、缩放比例和旋转角度

1、CGAffineTransformScale    对视图比例缩放

2、CGAffineTransformRotate  对视图做变焦旋转

3、CGAffineTransformTranslate 对视图在原来的位置上做平移

5、动画

开始动画,将改变属性的代码放在开始和提交之前

[UIView beginAnimations:nil context:nil]

提交动画

[UIView commitAnimations]之间

当动画即将开始时执行

+ (void)setAnimationWillStartSelector:(SEL)selector  执行delegate对象的selector

当动画结束时执行

+(void)setAnimationDidStopSelector:(SEL)selector

动画的持续时间,秒为单位

+ (void)setAnimationDuration:(NSTimeInterval)duration

动画延迟delay秒后再开始

+ (void)setAnimationDelay:(NSTimeInterval)delay

动画的开始时间,默认为now

+ (void)setAnimationStartDate:(NSDate *)startDate

动画的重复次数

+ (void)setAnimationRepeatCount:(float)repeatCount

如果设置为YES,代表动画每次重复执行的效果会跟上一次相反

+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses

一、UIViewController的基本概念

1、见名知意,试图控制器

3、每个试图控制器都自带一个试图,并且负责这个试图相关的一切事务

4、对于iOS应用程序来说,每一个页面都是都是一个控制器,通过切换不同的控制器,来实现切换不同的界面

4、在MVC体系中负责Model与View的通信

5、检测设备旋转以及内存警告

想要App支持某个方向,需要两个设置:

1) Deployment Info 中,勾选 Device Orientation

2) 在控制器中,重写 supportedInterfaceOrientations 方法。(如不重写,IPad 默认是UIInterfaceorientationMaskAll , IPhone 默认是 UIInterfaceOrientationMaskAllButUpsideDown )

模拟器模拟内存警告

选中模拟器->hardware->simulate memory warning

6、UIViewController是所有试图控制器类的基类,定义了试图控制器的基本功能

二、UIViewController的生命周期

0、每次访问控制器的view,view是nil的话就会自动调用该方法,如果重写在这个方法内必须给控制器设置一个根试图,如果不给的话程序就会无限循环直到程序奔溃

loadView

1、控制器的View加载完毕

viewDidLoad

2、View即将显示到window上

viewWillAppear

3、view显示完毕

viewDidAppear

4、View即将从window上移除

viewWillDisappear

5、view从window上移除完毕

viewDidDisappear

6、view即将销毁的时候调用

viewWillUnload

7、view销毁完毕的时候调用

viewDidUnload

8、当接收到内存警告的时候

didReceiveMemoryWarning

9、具体流程查看课件中的图片

三、模态试图的使用

1、模态视图不是专门的某个类,而是通过视图控制器的presentModalViewController:方法弹出的视图我们都称为模态视图

2、模态视图出现的场景一般是临时弹出的窗口,譬如:登陆窗口

3、通过设置将要弹出控制器的modalTransitionStyle属性设置不同的动画效果

3、弹出,

//presentModalViewController:

presentViewController:  animated:  completion:

4、取消:

//dismissModalViewControllerAnimated: 方法关闭窗口

dismissViewControllerAnimated:  completion:

上一篇下一篇

猜你喜欢

热点阅读