UIWindow

本文详细介绍了UIWindow的作用及其在iOS应用程序中的使用方法。包括创建UIWindow、设置rootViewController、使window可见等步骤。此外还介绍了UIWindow的重要属性如windowLevel、keyWindow及rootViewController等。

UIWindow是一个特殊的view,一般在应用程序中只有一个UIWindow。

UIWindow的作用:

1.它是一个容器,用来盛放视图,它本身不做显示,是UIView视图做绘图操作。

2.它与视图控制器一起协作来呈现数据

3.它为视图和其他控制器对象的触摸起到关键性作用,分发事件给View。

如何使用UIWindow呢?

1、创建UIWindow

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

2、设置其rootViewController

txMainViewController * mainViewController = [[txMainViewController alloc] initWithNibName:nil bundle:nil];

    self.window.rootViewController = mainViewController;

3、将window设为keyWindow且使其可见

[self.window makeKeyAndVisible];

UIWindow的常用属性:

1)windowLevel

UIWindowLevel 类型,多个 UIWindow 的显示顺序是按照 windowLevel 从高到低排列的,windowLevel 最高的显示在最前面。比如:windowLevel 较高的 UIAlertView 警告窗口会显示在一般窗口的前面。UIWindowLevel 类型的定义如下:

const UIWindowLevel UIWindowLevelNormal;   // 默认等级
const UIWindowLevel UIWindowLevelAlert;       // UIAlertView 的等级
const UIWindowLevel UIWindowLevelStatusBar;   // 状态栏的等级
typedef CGFloat UIWindowLevel;

从 UIWindowLevel 的定义可知,windowLevel 的值其实是一个 CGFloat 类型,我们将系统预设的三个等级打印出来,他们的值如下:

UIWindowLevelNormal:0.000000
UIWindowLevelAlert:2000.000000
UIWindowLevelStatusBar:1000.000000

UIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert
而当你需要一个额外的 UIWindow,并且此 UIWindow 需要显示在 UIAlertView 的前面,可以将此 windowLevel 设置为 :UIWindowLevelAlert + 1,那么此 UIWindow 与 UIAlertView 同时显示时,此 UIWindow 将显示在 UIAlertView 前面。

如果有多个UIWindow,且其UIWindowLevel都相同,那先调用 makeKeyAndVisble 的会一直显示在前面。

2)keyWindow

BOOL 类型,只读,用于判断是否是当前应用的 key window (key window 是指可接收到键盘输入及其他非触摸事件的 UIWindow,一次只能有一个 key window)

3)rootViewController

rootViewController :UIViewController 类型,iOS 4.0新增属性,设置此属性后,rootViewController 所包含的 view 将被添加到 UIWindow 中,iOS 4.0之前版本可采用 addSubview: 方法达到同样的效果,因为 UIWindow 类本身就是 UIView 的子类。

4) screen

IOS物理设备的替代者,【【UIScreen mainScreen】bounds]获取设备大小,如果iphone和iPad的尺寸不一样,如果做适配要用该属性。

UIWindow的常用方法:

  • makeKeyWindow :将当前 UIWindow 设置成应用的 key window。

      makeKeyAndVisible :将当前 UIWindow 设置成应用的 key window,并使得 UIWindow 可见;你也可以使用 UIView 的 hidden 属性来显示或者隐藏一个 UIWindow。


    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值