要想完成毛玻璃效果,其实有很多种途径:
- 第三方:DRNRealTimeBlur
- CoreImage:图片加高斯模
- UIToolBar
- 美工
将 toolBar 覆盖到要添加的图片上面,就可以让图片有毛玻璃效果,其中 setBarStyle 可以设置毛玻璃效果的颜色什么的
1 2 3 4 5 6 7
| UIToolbar *toolBar = [[UIToolbar alloc] init]; [self.albumView addSubview:toolBar]; [toolBar setBarStyle:(UIBarStyleBlack)]; [toolBar makeConstraints:^(MASConstraintMaker *make) { make.top.bottom.top.left.right.equalTo(self.albumView); }];
|
iOS8 刚出的 UIBlurEffect UIVisualEffectView
苹果在iOS 7中将界面改为扁平化,并大量使用了毛玻璃效果。比如手机上拉和下拉菜单的背景等。iOS7 并没有将这些 API 公布出来。但iOS 8 SDK中直接提供了 UIBlurEffect 类与 UIVisualEffectView 类,可以实现毛玻璃效果。这两个类的使用方法非常简单,步骤是:
创建UIBlurEffect类的实例,并指定某一种毛玻璃效果。
创建UIVisualEffectView类的实例,将步骤1中的UIBlurEffect类的实例应用到UIVisualEffectView类的实例上。
将UIVisualEffectView类的实例置于待毛玻璃化的视图之上即可。
下面以一个简单的例子来演示,效果如下图所示。(其实用 storyboard 更简单,可以不用使用代码)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *bluredEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; [bluredEffectView setFrame:self.selectedDetailsView.bounds];
[self.selectedDetailsView addSubview:bluredEffectView];
UIVibrancyEffect *vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect]; UIVisualEffectView *vibrancyEffectView = [[UIVisualEffectView alloc] initWithEffect:vibrancyEffect]; [vibrancyEffectView setFrame:self.selectedDetailsView.bounds];
[vibrancyEffectView.contentView addSubview:self.movieTitle]; [vibrancyEffectView.contentView addSubview:self.movieReleaseDate]; [vibrancyEffectView.contentView addSubview:self.movieDetails];
[bluredEffectView.contentView addSubview:vibrancyEffectView];
|