iOS- 添加UIWindow蒙版
开发中经常碰到需要添加一个半透明的蒙版,比如各类提示弹窗等。
UIWindow图层上添加蒙版
优先级
例如蒙版也可添加到self.navigationController.view图层上或者self.tabBarController.view图层上
self.view < self.navigationController.view < self.tabBarController.view < UIWindow
UIWindow:一般作为UIView的容器
应用场景
当需要将某些控件显示到最上层时就可以创建一个window,然后将空间添加到window上
支付宝、记账类软件认证界面(手势解锁)大部分都是用UIWindow做的
注意
1.一般情况下不要随意创建window,不要滥用,因为只要创建就会自动添加到界面上(不用addsubview!!!),那么如果滥用window会导致应用程序的层级结构混乱
2.window是有级别的,级别越高就显示在越顶层(键盘级别最高)
默认有3个级别:UIWindowLevelNormal(0.0) < UIWindowLevelAlert(1000.0) < UIWindowLevelStatusBar(2000.0)
也可自定义window.windowLevel = 4000.0;
UIWindow特点
只要创建就会自动添加到界面上
系统弹出UIAlertView、弹出键盘、来短信、来电、电量不足等也是用的UIWindow
如果需要window监听点击事件需要设置frame,因为window创建后没有frame
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
移除window可在点击方法里直接 window = nil;
//cover为frame是[UIScreen mainScreen].bounds的半透明或透明色button
UIWindow *window = [UIApplication sharedApplication].keyWindow;
[window addSubview:cover];
上个案例,自定义的一个指纹锁弹窗,其中touchidView为xib自定义的view样式,具体可根据实际需要自定义以及添加代理等方法。
#pragma mark - 添加touchIDView弹窗
- (void)popCoverview{
//设置蒙版
self.coverView = [[UIViewalloc]initWithFrame:[UIScreenmainScreen].bounds];
self.coverView.backgroundColor = [UIColorblackColor];
self.coverView.alpha =0.6;
//添加蒙版上弹窗视图
self.touchidView = [[NSBundlemainBundle] loadNibNamed:@"DDTouchidView"owner:selfoptions:nil].lastObject;
self.touchidView.center =self.coverView.center;
self.touchidView.delegate =self;
//实现弹出方法
UIWindow *window = [UIApplicationsharedApplication].keyWindow;
window.windowLevel =UIWindowLevelNormal;
[window addSubview:self.coverView];
[window addSubview:self.touchidView];
}
iOS- 添加UIWindow蒙版相关推荐
- iOS基础- 添加UIWindow蒙版
文章转载来自:https://blog.csdn.net/xiaohe901216/article/details/49948455 开发中经常碰到需要添加一个半透明的蒙版,比如各类提示弹窗等. UI ...
- iOS基础-UIWindow
iOS基础-UIWindow 一.简介: 二.UIWindow的创建过程 一.简介: UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建 ...
- Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮...
Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮 前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP) ...
- ios 添加导航栏视图_iOS进度栏(进度视图)
ios 添加导航栏视图 In this tutorial, we'll be discussing the UIProgressView component and create a progress ...
- iOS添加快捷方式到桌面
涉及:OpenUrl.iOS shceme.Data URI Scheme.JS.Socket 实现功能 将应用的某一个页面或某一个功能以快捷方式形式添加到桌面,用户点击桌面图标,可以唤起应用并打开对 ...
- ios 添加日历提醒事件_将日历提醒事件添加到网页
ios 添加日历提醒事件 Publicizing real-world events on web pages is a great idea, but it assumes that readers ...
- iOS基础 UIWindow
UIWindow iOS程序启动后,创建的第一个视图就是UIWindow,然后才创建控制器的View,并将其添加到UIWindow实例对象上. 尽管iOS支持多个窗口的存在,但最好不要创建多个窗口.
- iOS添加测试设备与调试
转至:http://www.lidaze.com/ 在上一篇博客中,已经购买好了开发账号,既然都交了钱了,就做点有意义的事吧! 要想使用真机测试,需要准备如下: 1.证书:安装到电脑上的cer文件,只 ...
- IOS添加KeyMob广告管理库中文教程
2019独角兽企业重金招聘Python工程师标准>>> 要在手机应用里面展示广告需要在应用里面添加广告管理库,KeyMob广告管理库目前的版本是20150801下载解压后可以看到IO ...
- ios添加GPUImage到项目
1. 把GPUImage.xcodeproj 拖到你的Xcode project 2. 在app的target依赖设置里面添加GPUImage作为Target Dependency 3. 在build ...
最新文章
- SpringBoot的修改操作
- Torch not compiled with CUDA enabled
- js获取 日期 星期 时间
- 【贪心】小Y的炮[cannon]题解
- 托管数据中心之间的PUE比较(下)
- spring--aop总结
- arraylist可以存储不同类型吗_创新科技 - 不同防冻液可以混加吗
- SharePoint 取消分享时的默认发邮件
- VGMP报文封装格式简介
- kylo添加登录权限module
- 8.线性回归之非线性回归
- 学习shell推荐书籍清单
- 计算机进行运算时为什么采用二进制数,计算机中为什么采用二进制
- linux device 与driver prove 过程
- WLAN中的MIMO技术详解
- 走进音视频的世界——音视频的基本概念
- 首例 3次IPO:前2次申请科创板、创业板均撤回、第3次改为主板、难圆其说变更保代及券商……
- 这可能是你近 2 年发论文最好机会!
- Linux查看网卡的运行情况,NETSTAT - 查看网络运行情况。
- 洛谷 P5740 【深基7.例9】最厉害的学生 题解