代码
//先添加一张背景图
UIImageView *bgImageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
bgImageView.image = [UIImage imageNamed:@"bg"];
[self.view addSubview:bgImageView];
//为背景图加上一层虚化
UIVisualEffectView *visualView = [[UIVisualEffectView alloc]initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
visualView.frame = self.view.bounds;
[self.view addSubview:visualView];
总结
在进行虚化的时候,尽量不要为模糊层设置alpha小于1的值,否则显示可能会出错。
首先,UIVisualEffectView是继承自UIView的类,包含了contentView属性和initWithEffect:初始化方法
用初始化方法为UIVisualEffectView初始化一个UIVisualEffect效果,UIVisualEffect可以为UIBlurEffect和UIVibrancyEffect(这两个类继承自UIVisualEffect).
UIBlurEffect只对模糊层下方有效,对contentView无效。UIVibrancyEffect只对contentView有效,模糊层下方无效。一般配合使用。
通过视图层可以看到一个UIVisualEffectView其实只是在背景上面多了三个笼罩层,并没有对背景图片进行实质改变。三个笼罩层中最下面的层就是UIVisualEffectView层,是后面两个层的父视图。