內(nèi)容鮮活依賴于毛玻璃效果
會(huì)讓內(nèi)容隨著背景色進(jìn)行變化,需要添加內(nèi)容(里面的子視圖),否則沒有效果
示例代碼:
- (void)viewDidLoad {
[super viewDidLoad];
[self setupBackgroundView];
}
// 設(shè)置背景圖 毛玻璃效果
- (void)setupBackgroundView{
/** 設(shè)置毛玻璃效果 設(shè)置視覺特效:iOS7開始出現(xiàn)但是沒有開放 iOS8開放API
UIBlurEffect:毛玻璃效果
UIVibrancyEffect:內(nèi)容鮮活(內(nèi)容可以根據(jù)背景色進(jìn)行變化)
*/
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect];
// 需要將視效視圖添加到目標(biāo)視圖中(效果將會(huì)影響后面的內(nèi)容分層視圖或內(nèi)容添加到視圖的contentview視覺效果)
[self.backgroundImageView addSubview:blurEffectView];
// 設(shè)置約束
[blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(UIEdgeInsetsMake(0, 0, 0, 0));
}];
// 設(shè)置內(nèi)容鮮活效果 依賴于毛玻璃效果
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));
}];
// 添加內(nèi)容: 會(huì)讓內(nèi)容隨著背景色進(jìn)行變化,需要添加內(nèi)容(里面的子視圖)
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 120, [UIScreen mainScreen].bounds.size.width, 100)];
label.text = @"會(huì)讓內(nèi)容隨著背景色進(jìn)行變化,需要添加內(nèi)容(里面的子視圖)";
[vibrancyEffectView.contentView addSubview:label];
}
示例中背景采用了一張圖片,在背景圖上添加了兩個(gè)UIVisualEffectView,其中一個(gè)是為了實(shí)現(xiàn)毛玻璃效果的,另外一個(gè)用來演示內(nèi)容鮮活效果(依賴于毛玻璃),同時(shí)在vibrancyEffectView.contentView中添加了一個(gè)Label,Label的顏色會(huì)根據(jù)背景圖片的顏色進(jìn)行變化,色彩越豐富效果越明顯,測試時(shí)可以更換一些色彩豐富的圖片來演示
實(shí)現(xiàn)效果:
vibrancyEffect.png