UIWindow相关

36 篇文章 0 订阅
29 篇文章 0 订阅

说道UIWindow,所有人都不会陌生,我们的第一个可视化iOS程序的显示,一定会用到UIWindow。


它就在这,谁也删不了。

每一个iOS应用都至少有一个window:
1.它包含您应用的可见内容
2.它在将触摸事件传递到您的视图和其他应用程序对象中起到关键作用
3.它处理您的视图控制器的方向改变
以上3句摘抄字官方文档。

除了是app的根视图以外,UIWindow还有很多用处,比如:
1.警告框
2.侧滑栏
3.引导页
等等,我暂时想到了这些

这次是我在写一个引导页的时候,好久不用window,踩了一些坑,分享给大家,省的再帮我踩一脚了

1.UIWindow必须是一个当前持有的对象,比如:我要在一个ViewController中需要window的话,那么这个window必须是ViewController的实例变量。当我想要将window封装在一个util中时,即便window是这个util的实例变量,那么util也必须被当前持有,我一般会将带有window的util做成一个单例。

2.UIWindow的显示,只需要一句:

[self.window makeKeyAndVisible];

3.UIWindow的层级

UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar __TVOS_PROHIBITED;

这是3个系统预定义的层级,分别代表了正常,警告,以及statusBar的层级,层级越高,越显示在上方,用户能够看到,我们用UIWindow这个组件的时候,一般都会修改一下level,方便控制显示层级。

4.UIWindow的销毁

[_window resignKeyWindow];
        _window = nil;

在想要销毁我们创建的window的时候,用这两句就ok了

顺便分享一个利用window实现的比较有意思的小功能:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值