< ![CDATA[
笔记
UIWindows 与UIView的关系
iOS的坐标系统
视图层次结构
视图坐标(Frame和Bounds区别)
UIView的常用属性和方法
坐标系统的变换
UIView内容模式
UIView动画
UIKit是一个提供了在iOS上实现图形,事件驱动的框架
UIView是视图基类
UIViewController试图控制器的基类
UIResponder表示一个可以接受触摸屏上的触摸事件的对象
窗口是视图的一个子类
窗口的主要功能:一个提供一个区域来显示视图
二来将事件event分发给视图
一个应用通常只有一个窗口。但也有例外
窗口与视图
使用窗口与视图在屏幕上显示应用程序的内容,窗口本身不具有任何可见的内容。但它对于应用程序的视图提供了一个基本的容器。视图定义
你想要的一些内容,填充窗口的一部分,例如,图形,文本。等
什么是窗口
每个应用程序至少需要一个窗口,通常 窗口用UIWindow类的实例来表示。UIWindow继承自UIView
window对象有以下职责:
它包含了应用程序的可视化的内容
它为视图和其他应用程序对象在触摸事件中提供了关键的作用
它与试图控制器一起协作来呈现数据
大多数IOS应用程序在其生命周期内只有一个UIWindow。并且,在应用程序的生命周期中。窗口跨越整个设备的主屏幕和从应用程序的主nib文件加载(编程方式创建)。但是,如果应用程序支持的外部显示器使用的视频输出,它可以创建额外的窗口,以显示改外部显示器上的内容,所有其他的窗口通常由系统创建,并且通常在响应特定的事件的时候创建的。如电话呼入
UIScreen
UIScreen对象可以充当ios设备物理屏幕的替代者,[UIScreen mainScreen]
bounds 获取屏幕大小。
手机屏幕的几个概念
Screen Size 屏幕尺寸,指具体的屏幕物理长度,以屏幕对角线的长度作为标示
Resolution 屏幕分辨率 指屏幕上的总共物理像素点
Density密度 标示每英寸有多少个显示点
ASPECT ratio 屏幕宽高比例。如4:3
Device-independent pixe:dip 设备无关像素。。dip是虚拟的像素单位。
专门用来给程序定义UI用
色阶 。平常说的65536色,26万色
ipad mini 1024*768
ipad3~4 2048*1536
ipad~2 1024*768
iphone 5 640*1136
iphone4~4s 640*960
获取当前UIWindow和级别
通过UIApplication获取当前的keyWindow
keyWindow 是用来管理 键盘以及非触摸类的消息。
并且只有一个window是keyWindow
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
每个UIWindow对象配置windowLevel属性。大部分不应该去改变windowLevel
UIWindow 有3个级别。 通过windowLevel设置,优先级为
UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal
Demon
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; //self.window.windowLevel = UIWindowLevelNormal; [self.window makeKeyAndVisible]; //定义一个button。类型是 根据rect 的比例来画出来的。 UIButton *startButton =[UIButton buttonWithType:UIButtonTypeRoundedRect]; //定位 startButton.frame=CGRectMake(320/2-120/2, 180, 120, 35); //设置标题 [startButton setTitle:@"警告" forState:UIControlStateNormal]; //设置事件。添加事件是自身。 目标是alertUser方法。从touchup触发 [startButton addTarget:self action:@selector(alertUser) forControlEvents:UIControlEventTouchUpInside]; //加到view里面 [self.window addSubview:startButton]; // self.window.windowLevel = UIWindowLevelStatusBar; // NSLog(@" window level %.2f",self.window.windowLevel); // // NSLog(@" normal: %.2f",UIWindowLevelNormal); // // NSLog(@" statusbar: %.2f", UIWindowLevelStatusBar); // // NSLog(@" alert: %.2f", UIWindowLevelAlert); // return YES; } -(void) alertUser { UIAlertView *alertview=[[UIAlertView alloc] initWithTitle:@"提示" message:@"content" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertview show]; //弹出去 }
]]>