tweak intensity of blur effect inside UIVisualEffectView in Swift
Asked Answered
I

2

9

I'm using this code to create a blur effect inside my view:

let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))
blur.frame = CGRectMake(180, 10, 200, 750)
myView.addSubview(blur)

is there any way to tweak the gaussian function producing the blur in order to achieve different level of "out of focus" effect?

Isomorph answered 7/12, 2014 at 18:34 Comment(0)
K
1

Since there is no other parameter in UIBlurEffect , I think the only way is to use the CIFilter preset CIGaussianBlur to blur the background View and use its key inputRadius to adjust the level.
If you want to achieve the same effect as so called light/dark/ExtraLight, you can compose this filter with other filters.

Kurtzig answered 5/2, 2015 at 11:44 Comment(0)
K
1

The radius of the actual UIBlurEffect cannot change, but there is a workaround.

Changing the alpha component of the UIVisualEffectView, will give a subtle blur effect.

let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light))
blur.frame = CGRectMake(180, 10, 200, 750)
blur.alpha = 0.4
myView.addSubview(blur)

Swift 3

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.extraLight)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.alpha = 0.4
blurEffectView.frame = self.bounds
self.addSubview(blurEffectView)
Kagu answered 24/11, 2016 at 8:15 Comment(1)
Apple advises to not use the alpha value. an alpha value < 1 will make the actual (sharp) background visible and lays the blur ontop of itInterpenetrate

© 2022 - 2024 — McMap. All rights reserved.