二十六,iOS UIWindow的简单使用

写这个demo是在看唐巧老师的书之后写的一个的demo,毕竟demo比文字有说服力

在iOS应用中使用UIWindow和UIView来显示界面,UIWindow不包含任何默认的内容,但是他被当做UIView的容器,用于放置应用中所有的UIView

UIWindow 继承自UIView 基本上具有UIView的所有功能,以及一些增加的方法。

1.最常用的程序刚启动时设置窗口

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor whiteColor];
    
    ViewController *vc = [[ViewController alloc] init];
    UINavigationController *na = [[UINavigationController alloc] initWithRootViewController:vc];
    self.window.rootViewController  = na;

2.UIWindow的层级显示如下

 NSLog(@"UIWindowLevelNormal=%f\nUIWindowLevelAlert=%f\nUIWindowLevelStatusBar=%f",UIWindowLevelNormal,UIWindowLevelAlert,UIWindowLevelStatusBar);

UIWindowLevelNormal=0.000000
UIWindowLevelAlert=2000.000000
UIWindowLevelStatusBar=1000.000000

当有其他的UIWindow的时候在使用中层级会有其它数值,如alertview等等;

3.使用单例创建UIWindow

具体的地址见代码

demo中的用于当app 退出进入后台时调用单例,然后用新建的UIWindow覆盖到原来的UIWindow上面如果输入的密码正确就隐藏掉


github地址:https://github.com/wang6177ming123/UIWindowDemo

4.不要乱用UIWindow

在以前项目中用UIWindow创建了个弹窗,就是使用UIWindow导致最后无法回收,回使UIWindow堆积越来越多。

使用单例不会出现堆积的可能,单例使用上一篇中的GCD的一个只执行一次的方法来写的;


5.可用的地方

比如密码输入界面之后回到原来界面;应用启动介绍页;应用内的广告等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值