开发者社区> kyxu> 正文

【iOS开发】快速生成高斯模糊效果背景

简介: 这篇文章是上一篇文章 http://www.jianshu.com/p/c9083a105921 的拓展,不罗嗦了,直接上代码。 //创建毛玻璃效果的背景 func createFrostBackground (img:UIImage,view:UIView) { let w = self.
+关注继续查看

这篇文章是上一篇文章 http://www.jianshu.com/p/c9083a105921 的拓展,不罗嗦了,直接上代码。

//创建毛玻璃效果的背景
func createFrostBackground (img:UIImage,view:UIView) {
    let w = self.view.frame.width
    let h = self.view.frame.height
    let blurImageView = UIImageView(frame: CGRectMake(-w/2, -h/2, 2*w, 2*h)) //模糊背景是界面的4倍大小
    blurImageView.contentMode = UIViewContentMode.ScaleAspectFill
    blurImageView.image = img
    //创建毛玻璃效果层
    let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light)) as UIVisualEffectView
    visualEffectView.frame = blurImageView.frame
    //添加毛玻璃效果层
    blurImageView.addSubview(visualEffectView)
    self.view.insertSubview(blurImageView, belowSubview: view)
}

这个 Swift 函数可以帮你创造出一个带模糊效果的背景。

思路和上一篇大体是一样的,传入一个img参数作为背景图片,模糊处理后作为一个imageView插入在传入的view参数这个UIView的下方。

但是真正做了模糊处理的只有下面这一句
let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light)) as UIVisualEffectView
本质是其实是把你传入的Image,放到ImageView里面,再给ImageView加一个有模糊特性的SubView,让它看起来很模糊,并没有真正地处理原图。

相比上一篇文章中的方法,
【优点】:性能提升好几倍,毕竟只是加了一层View,而没有真正意义的图片处理。
【缺点】:UIBlurEffectStyle只有Light、Dark、ExtraLight三个属性可以选,而不像之前可以任意设置高斯模糊的半径。

感谢:徐小雷同学的指导

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【iOS开发】快速生成高斯模糊效果背景
这篇文章是上一篇文章 http://www.jianshu.com/p/c9083a105921 的拓展,不罗嗦了,直接上代码。 //创建毛玻璃效果的背景 func createFrostBackground (img:UIImage,view:UIView) { let w = self.
1003 0
微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解)
微信扫码登陆网站类似 58同城(基于微信开发生成带参数的二维码的讲解)
26 0
使用typeDoc快速生成开发文档
使用typeDoc快速生成开发文档
146 0
仿IOS效果-带弹簧动画的ListView
背景介绍 最近项目打算做一个界面,类似于dayone首页的界面效果,dayone 是一款付费应用,目前只有IOS端。作为一个资深懒惰的程序员,奉行的宗旨是绝对不重复造一个轮子。于是乎,去网上找一大堆开源项目,发现没有找到合适的,然后,只能硬着头皮自己来了。先看看效果: 其实写起来也比较简单,就是控制ListView的头部和底部的高度就可以了, 如果用RecycleVi
1032 0
2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效
 1 类图组织 2 实例 CCSprite * spr = CCSprite::create("HelloWorld.png"); spr->setPosition(ccp(winSize.width/2,winSize.height/2)); addChild(spr);   //GridAction
1409 0
微信开发生成带参数的二维码的讲解
生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微信公众号上
22 0
+关注
kyxu
近四年独立开发经验,在 App Store 发布过 17 款独立开发作品,作品被 App Store 官方多次推荐,App 总销量已经超过 56w。公众号:KyXuIndie
71
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载