一、UIKIT框架结构
UIKit是一个提供了在ios上的实现图形,事件驱动程序的框架
UIView是视图的基类
UIViewController是视图控制器的基类。
UIResponder表示一个可以接受触摸屏上的触摸事件的对象。
窗口是视图的一个子类。窗口的主要功能:一是提供一个区域来显示视图。
二是将事件(event)分发给视图。一个应用通常只有一个窗口。
二、窗口与视图
在ios中,使用窗口与视图在屏幕上显示应用程序的内容。窗口本身不具有任何可见的内容,但它对于应用程序的视图提供一个基本的容器。视图定义你想要的一些内容填充的窗口的一部分。例如:可能显示图像、文本、形状或某种组合的视图。还可以使用视图组织和管理的其他视图。
每个应用程序至少需要一个窗口,通常窗口用UIWindow类的实例来表示。UIWindow继承自UIView。
Window对象有以下职责:
它包含了应用程序的可视化的内容。
它为视图和其他应用程序对象在触摸事件中提供了关键性的作用。
它与视图控制器一起协作来呈现数据。
三、获取当前UIWindow和级别
1、通过UIApplication获取当前keyWindow。
2、keyWindow是用来管理键盘以及非触摸类的消息,并且只能有一个window是keyWindow。
3、UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow:
4、每个UIWindow对象配置windowLevel属性,大部分时候不应该去改变windowLevel。
5、UIWindow有3个级别,对应了3种显示优先级。通过windowLevel设置,优先级为:UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal
代码:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
NSLog(@"level : %.2f",self.window.windowLevel);
NSLog(@"Normal : %.2f",UIWindowLevelNormal);
NSLog(@"status: %.2f",UIWindowLevelStatusBar);
NSLog(@"alert : %.2f",UIWindowLevelAlert);
return YES;
运行结果:
2014-08-04 21:43:33.870 UIWindow2.1[5880:275111] level : 0.00
2014-08-04 21:43:33.871 UIWindow2.1[5880:275111] Normal : 0.00
2014-08-04 21:43:33.872 UIWindow2.1[5880:275111] status: 1000.00
2014-08-04 21:43:33.872 UIWindow2.1[5880:275111] alert : 2000.00
2014-08-04 21:43:33.872 UIWindow2.1[5880:275111] Application