【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三个属性可以选,而不像之前可以任意设置高斯模糊的半径。

感谢:徐小雷同学的指导

目录
相关文章
|
23天前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
73 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
120 2
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
37 0
|
3月前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
42 2
|
3月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
83 2
|
3月前
|
API 开发工具 iOS开发
iOS 开发高效率工具包:10 大必备工具
iOS 开发高效率工具包:10 大必备工具
42 1
|
3月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
52 1
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
176 2
|
3月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
37 4
|
3月前
|
iOS开发
iOS开发解释 App 生命周期,包括各个阶段的调用顺序。
iOS开发解释 App 生命周期,包括各个阶段的调用顺序。
26 1