ios 设置控制器背景半透明_iOS Modal出半透明控制器

本文介绍了如何在iOS中创建一个从上到下弹出的半透明页面,并在此基础上进行Modal和Push交互。通过设置`modalPresentationStyle`和背景颜色,以及在Modal+Push交互中处理UINavigationController的背景透明,解决了半透明效果丢失的问题。
摘要由CSDN通过智能技术生成

在最近的开发需求里,有一个半透明的页面,从上到下弹出方式,然后在该弹出视图上再Modal和Push其他的页面,之前常规的做法是选择view添加到keyWindow上:

1、如果选择View来完成,modal出一个新页面

[[UIApplication sharedApplication].keyWindow addSubview:self];

由于弹出视图是添加在keyWindow上,modal出的新页面会在弹出的view之下

2.选择添加到window上,显示不会有问题

[[[UIApplication sharedApplication].delegate window] addSubview:self];

//在其他页面modal或push前将视图置于盒子下方

[[[UIApplication sharedApplication].delegate window] sendSubviewToBack:self];

//在返回到该弹窗页面时再将弹窗页面显示在最上方

[[[UIApplication sharedApplication].delegate window] bringSubviewToFront:self];

利用第二种方式能够较好的处理半透明弹窗的显示以及后续的Modal和Push交互,不过该方式在利用View数据传递和交互方式上会有诸多不便,遂考虑使用Modal出控制器的方式,利用VC去做数据传递与交互会便捷很多。

3、选择modal出一个控制器

需要设置modal的style

let modalVC = ModalViewController();

modalVC.modalPresentationStyle = .overCurrentContext

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值