内容鲜活依赖于毛玻璃效果
会让内容随着背景色进行变化,需要添加内容(里面的子视图),否则没有效果
示例代码:
- (void)viewDidLoad {
[super viewDidLoad];
[self setupBackgroundView];
}
// 设置背景图 毛玻璃效果
- (void)setupBackgroundView{
/** 设置毛玻璃效果 设置视觉特效:iOS7开始出现但是没有开放 iOS8开放API
UIBlurEffect:毛玻璃效果
UIVibrancyEffect:内容鲜活(内容可以根据背景色进行变化)
*/
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect];
// 需要将视效视图添加到目标视图中(效果将会影响后面的内容分层视图或内容添加到视图的contentview视觉效果)
[self.backgroundImageView addSubview:blurEffectView];
// 设置约束
[blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(UIEdgeInsetsMake(0, 0, 0, 0));
}];
// 设置内容鲜活效果 依赖于毛玻璃效果
UIVibrancyEffect *vibbrancyEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect];
UIVisualEffectView *vibrancyEffectView = [[UIVisualEffectView alloc]initWithEffect:vibbrancyEffect];
[self.backgroundImageView addSubview:vibrancyEffectView];
[vibrancyEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(UIEdgeInsetsMake(0, 0, 0, 0));
}];
// 添加内容: 会让内容随着背景色进行变化,需要添加内容(里面的子视图)
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 120, [UIScreen mainScreen].bounds.size.width, 100)];
label.text = @"会让内容随着背景色进行变化,需要添加内容(里面的子视图)";
[vibrancyEffectView.contentView addSubview:label];
}
示例中背景采用了一张图片,在背景图上添加了两个UIVisualEffectView,其中一个是为了实现毛玻璃效果的,另外一个用来演示内容鲜活效果(依赖于毛玻璃),同时在vibrancyEffectView.contentView中添加了一个Label,Label的颜色会根据背景图片的颜色进行变化,色彩越丰富效果越明显,测试时可以更换一些色彩丰富的图片来演示
实现效果: