内容鲜活-视觉特效 - (Obj-C)

内容鲜活依赖于毛玻璃效果

会让内容随着背景色进行变化,需要添加内容(里面的子视图),否则没有效果

示例代码:

- (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的颜色会根据背景图片的颜色进行变化,色彩越丰富效果越明显,测试时可以更换一些色彩丰富的图片来演示

实现效果:

内容鲜活-视觉特效 - (Obj-C)_第1张图片
vibrancyEffect.png

你可能感兴趣的:(内容鲜活-视觉特效 - (Obj-C))