博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIVisualEffectView
阅读量:4296 次
发布时间:2019-05-27

本文共 1512 字,大约阅读时间需要 5 分钟。

UIVisualEffectView

UIVisualEffectView 视图,为其遮盖的视图提供额外的效果,或影响其内部子视图的效果。

区分两者主要是 UIVisualEffect 的两个子类 UIBlurEffectUIVibrancyEffect,初始化 UIVisualEffectView 实例对象时需要从两个子类中选择一个,作为视图效果。

但是,通常使用 UIVibrancyEffect 效果的 UIVisualEffectView 实例视图,需要作为用 UIBlurEffect 效果生成的 UIVisualEffectView 实例视图的子视图,来使得其子视图更加生动。

而为 UIVisualEffectView 添加子视图时,需要添加到其 contentView 属性中。

通常,我们使用该类来实现视图的虚化,来保护用户隐私。

@interface SceneDelegate ()@property (nonatomic, strong) UIVisualEffectView *visualEffectView;@end@implementation SceneDelegate- (UIVisualEffectView *)visualEffectView {    if (_visualEffectView == nil) {        UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleRegular];        _visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];               _visualEffectView.frame = UIScreen.mainScreen.bounds;    }    _visualEffectView.alpha = 1;    return _visualEffectView;}- (void)sceneDidBecomeActive:(UIScene *)scene {    [UIView animateWithDuration:0.5 animations:^{        self.visualEffectView.alpha = 0;    } completion:^(BOOL finished) {        [self.visualEffectView removeFromSuperview];    }];}- (void)sceneWillResignActive:(UIScene *)scene {//    [self.window addSubview:self.visualEffectView]; }- (void)sceneDidEnterBackground:(UIScene *)scene {    [self.window addSubview:self.visualEffectView];}@end

类似支付宝、夸克等应用,从自身应用的活动状态进入非活动状态时,并没有虚化自身界面,而是在进入后台后,在进入非活动状态时,才使得视图虚化。

如果想要应用的视图从活动状态进入非活动状态后就直接虚化,可以在 sceneWillResignActive: 代理中添加 UIVisualEffectView 视图。

UIVisualEffectView 的细节可以参考

转载地址:http://tvdws.baihongyu.com/

你可能感兴趣的文章
Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
查看>>
点击button实现Storyboard中TabBar Controller的tab切换
查看>>
Xcode 的正确打开方式——Debugging
查看>>
打包app出现的一个问题
查看>>
iOS在Xcode6中怎么创建OC category文件
查看>>
Expanding User-Defined Runtime Attributes in Xcode with Objective-C
查看>>
iOS7 UITabBar自定义选中图片显示为默认蓝色的Bug
查看>>
提升UITableView性能-复杂页面的优化
查看>>
25 iOS App Performance Tips & Tricks
查看>>
那些好用的iOS开发工具
查看>>
iOS最佳实践
查看>>
使用CFStringTransform将汉字转换为拼音
查看>>
更轻量的 View Controllers
查看>>
Chisel-LLDB命令插件,让调试更Easy
查看>>
时间格式化hh:mm:ss和HH:mm:ss区别
查看>>
When to use Delegation, Notification, or Observation in iOS
查看>>
Objective-C Autorelease Pool 的实现原理
查看>>
编程语言大牛王垠:编程的智慧,带你少走弯路
查看>>
ios指令集以及基于指令集的app包压缩策略
查看>>
iOS开发者的福利 — — iOS9+Xcode7免越狱免证书直接调试
查看>>