iOS实现从后台切换到前台有毛玻璃效果

为了保护用户的隐私加入了后台毛玻璃效果(其实并没有什么卵用),怎么实现呢,其实很简单,只需要在appDelegate中写几行代码即可.

1. OC版本

首先声明一个变量 visualEffectView
@property (strong, nonatomic)UIVisualEffectView *visualEffectView;

- (UIVisualEffectView *)visualEffectView{
    if (!_visualEffectView) {
        UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
        _visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
        _visualEffectView.frame = [UIScreen mainScreen].bounds;
    }
    return _visualEffectView;
}

//当 app 处于 inactive 状态时, 添加 visualEffectView 。
- (void)applicationWillResignActive:(UIApplication *)application {
    [[UIApplication sharedApplication].keyWindow addSubview:self.visualEffectView];
}

//当 app 处于 active 状态时, 移除 visualEffectView 。
- (void)applicationDidBecomeActive:(UIApplication *)application {
    if (self.visualEffectView) {
        [self.visualEffectView removeFromSuperview];
    }
}

2. swift版本

private var visualEffectView: UIView!

//增加 getVisualEffectView() 方法
private func getVisualEffectView() -> UIView {
    if nil == visualEffectView {
        let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light)
        visualEffectView = UIVisualEffectView(effect: blurEffect)
        visualEffectView.frame = UIScreen.main.bounds
    }

    return visualEffectView
}


//当 app 处于 inactive 状态时, 添加 visualEffectView 。
func applicationWillResignActive(application: UIApplication) {
 // Add visualEffectView
 UIApplication.shared.keyWindow?.addSubview(getVisualEffectView())
}

//当 app 处于 active 状态时, 移除 visualEffectView 。
func applicationDidBecomeActive(application: UIApplication) {
    // Remove visualEffectView
    if nil != visualEffectView {
        visualEffectView.removeFromSuperview()
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值