一.UIToolBar
iOS7 及之前的版本可以使用UIToolBar 快速定义自己的毛玻璃效果
UIImageView *imageView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"register_bg.jpeg"]]; imageView.frame =self.view.frame; [self.view addSubview:imageView]; UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0,0, imageView.frame.size.width/2, imageView.frame.size.height)]; toolbar.barStyle = UIBarStyleBlackOpaque; [imageView addSubview:toolbar];
UIToolBar.png
二.UIVisualEffectView类
在iOS8.0之后,苹果新增了一个类UIVisualEffectView,可以快速实现毛玻璃效果。官方文档也提供了几个类的说明
1、UIBlurEffect: 创建模糊效果,也就是毛玻璃效果的类,可以设置风格。
2、UIVibrancyEffect: 作用是放大和调整UIVisualEffectView内容视图的内容的颜色,让UIVisualEffectView的contentView中的内容看起来更加生动
3、UIVisualEffect: 没有任何方法,只是充当一个帮助UIVisualEffectView创建的对象,是UIBlurEffect和UIVibrancyEffect的父类
4、UIVisualEffectView:展示复杂的图像效果。
通常UIVibrancyEffect对象是与UIBlurEffect一起使用,主要用于处理在UIBlurEffect特效上的一些显示效果。
注意:
1、不要直接添加子视图到UIVisualEffectView视图中,而是应该添加到UIVisualEffectView对象的contentView中
2、尽量避免将UIVisualEffectView对象的alpha值设置为小于1.0的值,因为创建半透明的视图会导致系统在离屏渲染时去对UIVisualEffectView对象及所有的相关的子视图做混合操作。这不但消耗CPU/GPU,也可能会导致许多效果显示不正确或者根本不显示。
UIImageView *imageView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"register_bg.jpeg"]]; imageView.frame =self.view.frame; [self.view addSubview:imageView]; //iOS 8.0 * * 模糊效果的三种风格 * * @param UIBlurEffectStyle * * UIBlurEffectStyleExtraLight, //高亮 * UIBlurEffectStyleLight, //亮 * UIBlurEffectStyleDark //暗 * * UIBlurEffect *blurEffect =[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; UIVisualEffectView *effectView =[[UIVisualEffectView alloc]initWithEffect:blurEffect]; effectView.frame = CGRectMake(imageView.frame.size.width/2,0, imageView.frame.size.width/2, imageView.frame.size.height); [self.view addSubview:effectView];
UIBlurEffect.png
转载请联系作者:Krien