标签:
1.在iOS中,使用窗口与视图在屏幕上显示应用程序的内容。窗口本身不具有任何可见 的内容,但它对于应用程序的视图提供一个基本的容器。视图定义你想要用的一些内容 填充的窗口的一部分。例如,可能显示图像、 文本、 形状或某种组合的视图。还可以使 用视图来组织和管理的其他视图。
窗口
·什么是窗口?
·每个应用程序至少需要一个窗口,通常窗口用UIWindow类的实例来表示。注意 UIWindow继承自UIView。
·window对象有以下职责:
·它包含了应用程序的可视化的内容 ·它为视图和其他应用程序对象在触摸事件中提供了关键性的作用 ·它与视图控制器一起协作来呈现数据
大多数iOS应用程序在其生命周期内只有一个UIWindow。并且在应用程序的生命周期中,窗口跨越 整个设备的主屏幕和从应用程序的主 nib 文件被加载 (或以编程方式创建)。但是,如果应用程序支持 的外部显示器使用的视频输出,它可以创建额外的窗口,以显示该外部显示器上的内容。所有其他的窗口 通常由系统创建,并且通常在响应特定的事件的时候创建的,如传入的电话呼叫。
2.创建和配置UIWindow
//创建一个全屏幕的window self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]bounds]]; self.window.backgroundColor = [UIColor whiteColor]; //把viewcontroller当做window的跟控制器 self.window.rootViewController = [[UIViewController alloc]init]; //显示window [self.window makeKeyAndVisible];
3.获取当前UIWindow和级别
·通过UIApplication获取当前keyWindow。
·keyWindow是用来管理键盘以及非触摸类的消息,并且只能有一个window是 keyWindow.
·UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; ·每个UIWindow对象配置windowLevel属性,大部分时候不应该去改变windowLevel。
·UIWindow有3个级别,对应了3种显示优先级。通过windowLevel设置,优先级为: UIWindowLevelAlert>UIWindowLevelStatusBar>UIWindowLevelNormal
二.UIScreen
1.UIScreen对象可以充当ios设备物理屏幕的替代者,[UIScreen mainScreen] bounds] 获取设备屏幕大小,如iPhone和iPad的尺寸不一样,如果要做的比
较通用应该使用 UIScreen类来获取尺寸。最新的iPhone5的适配问题!
2.虽然iOS支持将一个窗口叠放在其它窗口的上方,但是您的应用程序永远不 应创建多个窗口, 因为会影响事件的传递。
3.手机屏幕的几个概念
·Screen size: 屏幕尺寸,指具体的屏幕物理长度,以屏幕对角线的长度作为标示。
·Resolution: 屏幕分辨率,指屏幕上总共的物理像素点。
·Density:密度,标示每英寸有多少个显示点。density是以分辨率为基础,即指在固 定分辨率上散开的像素点,也就是说屏幕的density越大。
·ASPECT RATIO :屏幕宽高比例。也就是平时我们说的宽高比为 4:3 ·Device-independent pixe: dip,设备无关像素。dip是一种虚拟的像素单位,专门
用来给程序定义UI用
·色阶: 也就是平时我们说的 65536色, 26万色, 1600万色并没有数字看起来差别那么 大,这实际上只是表示相邻的三个色阶而已,当然, 1600万色显示效果是最好的。
三.UIView
UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类。
负责渲染区域的内容,并且响应该区域内发生的触摸事件
UIView的功能 :
1.管理矩形区域里的内容
2.处理矩形区域中的事件
3.子视图的管理
4.还能实现动画 UIView的子类也具有这些功能
下图就是视图的内层次
5.视图结构和相关函数
CGPoint point = CGPointMake(x,y); //位置
CGSize size = CGSizeMake(width,height); //大小
CGRect rect = CGRectMake(x,y,width,height); // 位置和大小
6.创建View
//视图 UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(20, 20, 40, 200)]; view1.backgroundColor = [UIColor whiteColor]; // view1.clipsToBounds=YES; [self.window addSubview:view1];
7. View的常用属性:
·alpha //透明度
·backgroundColor //背景颜色UIColor
·subViews //子视图集合NSArray
·hidden //是否隐藏BOOl
·tag //标签值
·superview //父视图UIView
·clipsToBound //去掉超出视图的部分BOOL
·multipleTouchEnabled //是否开启多点触摸BOOL
·userInteractionEnabled //是否响应触摸事件BOOL
8.坐标系统变换通过transform属性来改变
·CGAffineTransformScale 对视图比例缩放
·CGAffineTransformRotate 对视图做变焦旋转
·CGAffineTransformTranslate 对视图在原来的位置上做平移
·CGAffineTransformIdentity 还原到视图最初的状态
//放大
- (IBAction)enlarge:(id)sender { CGAffineTransform t = _ColorView.transform; _ColorView.transform = CGAffineTransformScale(t, 1.2,1.2); } //缩小 - (IBAction)narrow:(id)sender { CGAffineTransform t = _ColorView.transform; _ColorView.transform = CGAffineTransformScale(t,0.7,0.7); } //旋转 - (IBAction)rotate:(id)sender { CGAffineTransform t = _ColorView.transform; _ColorView.transform = CGAffineTransformRotate(t,M_PI/18); }
//还原 - (IBAction)reduction:(UIButton *)sender { // CGAffineTransform t = _ColorView.transform; _ColorView.transform = CGAffineTransformIdentity; } //平移 - (IBAction)translation:(UIButton *)sender { CGAffineTransform t = _ColorView.transform; _ColorView.transform = CGAffineTransformTranslate(t, 20, 20); }
9.视图动画
UIView对象中支持动画的属性有如下几个:
步骤:
1)开始并设计动画
[UIView beginAnimations:nil context:nil]; //每次动画持续多少秒 [UIView setAnimationBeginsFromCurrentState:10]; //设置重复次数 [UIView setAnimationRepeatCount:1];
2)要用动画来做什么事情
CGAffineTransform t = self.tuview.transform; self.tuview.transform = CGAffineTransformScale(t,100, 100); self.tuview.center = self.view.center; self.tuview.transform = CGAffineTransformRotate(t,M_PI/4); self.tuview.alpha = 0.1;
3)提交画面
[UIView commitAnimations];
标签:
原文地址:http://www.cnblogs.com/ios-0728te254096fh/p/5751241.html