Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

tweak intensity of blur effect inside UIVisualEffectView in Swift

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?

like image 692
Claus Avatar asked Dec 07 '14 18:12

Claus


2 Answers

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.

like image 184
duan Avatar answered Nov 06 '22 03:11

duan


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)
like image 40
Idan Avatar answered Nov 06 '22 02:11

Idan