iOS实现从后台切换到前台有毛玻璃效果
程序员文章站
2022-08-12 22:10:39
iOS实现从后台切换到前台有毛玻璃效果,为了保护用户的隐私加入了后台毛玻璃效果(其实并没有什么卵用),怎么实现呢,其实很简单,只需要在appDelegate中写几行代码即可。
1...
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() } }