毛玻璃效果
2016-05-06 13:06
357 查看
iOS8之后苹果提供了制作毛玻璃效果的API
就是这个UIVisualEffectView,用这个initWithEffect:去初始化,然后呢,他有两种效果继承自UIVisualEffect。这个父类不用管,什么也不做,主要看他的两个子类UIBlurEffect和UIVibrancyEffect。
UIBlurEffect : 这个是影响毛玻璃后面视图的
效果图:
![](http://img.blog.csdn.net/20160506125424251)
UIVibrancyEffect : 这个是影响毛玻璃上的视图的
![](http://img.blog.csdn.net/20160506125447278)
是不是很漂亮,做起来也不难呢。
先说毛玻璃下面的效果的做法。
你先初始化一个UIBlurEffect对象,他有三种风格
上面的效果都是用UIBlurEffectStyleLight做出来的
UIBlurEffectStyleExtraLight效果如下
![](http://img.blog.csdn.net/20160506125652372)
UIBlurEffectStyleDark效果如下
![](http://img.blog.csdn.net/20160506125743380)
然后呢用这个UIBlurEffect对象创建一个UIVisualEffectView对象。用你需要被虚化的视图添加这个UIVisualEffectView对象为子视图就可以了。
接着说毛玻璃上面的效果
创建一个UIVibrancyEffect对象,用之前创建的blur去初始化,然后创建一个UIVisualEffectView对象,用这个UIVibrancyEffect对象初始化,最后将你想要添加的子视图添加到UIVisualEffectView的contentView上就可以了。
完整代码如下:
就是这个UIVisualEffectView,用这个initWithEffect:去初始化,然后呢,他有两种效果继承自UIVisualEffect。这个父类不用管,什么也不做,主要看他的两个子类UIBlurEffect和UIVibrancyEffect。
UIBlurEffect : 这个是影响毛玻璃后面视图的
效果图:
UIVibrancyEffect : 这个是影响毛玻璃上的视图的
是不是很漂亮,做起来也不难呢。
先说毛玻璃下面的效果的做法。
你先初始化一个UIBlurEffect对象,他有三种风格
typedef NS_ENUM(NSInteger, UIBlurEffectStyle) { UIBlurEffectStyleExtraLight, UIBlurEffectStyleLight, UIBlurEffectStyleDark }
上面的效果都是用UIBlurEffectStyleLight做出来的
UIBlurEffectStyleExtraLight效果如下
UIBlurEffectStyleDark效果如下
然后呢用这个UIBlurEffect对象创建一个UIVisualEffectView对象。用你需要被虚化的视图添加这个UIVisualEffectView对象为子视图就可以了。
接着说毛玻璃上面的效果
创建一个UIVibrancyEffect对象,用之前创建的blur去初始化,然后创建一个UIVisualEffectView对象,用这个UIVibrancyEffect对象初始化,最后将你想要添加的子视图添加到UIVisualEffectView的contentView上就可以了。
完整代码如下:
// UIBlurEffect效果 UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame]; imageView.image = [UIImage imageNamed:@"pic"]; UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIVisualEffectView *ev = [[UIVisualEffectView alloc] initWithEffect:blur]; ev.frame = self.view.frame; [imageView addSubview:ev]; // UIVibrancyEffect效果 UIVibrancyEffect *vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:blur]; UIVisualEffectView *ano = [[UIVisualEffectView alloc] initWithEffect:vibrancyEffect]; ano.frame = self.view.frame; UILabel *label = [[UILabel alloc] init]; label.font = [UIFont systemFontOfSize:40]; label.frame = CGRectMake(100, 100, 400, 100); label.text = @"Beautiful View"; [ev.contentView addSubview:ano]; [ano.contentView addSubview:label]; [self.view addSubview:imageView];
相关文章推荐
- Android异常捕获02
- Spark流处理解读(3)JOB源码解读
- 类的成员函数做回调函数
- EditTextView的介绍和使用
- Oracle中查询各种对象的方法小结
- 第1章 UML基础:类的关系
- 第十周-点类族设计项目1
- 我经历的IT公司面试及离职感受
- Yii2.0 rules验证规则大全
- web.xml 配置
- ExtJS自定义控件 之一:datetimefield控件
- 上传文件功能-1
- 二叉树的非递归遍历
- NYOJ 题目77 开灯问题
- 2、Ajax与Java通过POST方式交互
- iOS开发-进阶:语言国际化及代码切换语言
- img图片下多余空白解决方案
- 【HUSTOJ】1072: 拐角V
- Android 打造编译时注解解析框架 这只是一个开始
- html页面中显示审查元素时Element.style