How to edit the UIBlurEffect intensity?
Adjusting the blur itself is not possible... But, you can adjust how visible the blur view is. This can be done in a number of ways, only three of which I can think of at the moment:
1st Option: Adjust the alpha of your UIVisualEffectView instance e.g:
effectView.alpha = 0.4f;
2nd Option: Add a UIView instance to effectView at Index 0 and adjust the alpha of this UIView instance. e.g:
UIView *blurDilutionView = [[UIView alloc] initWithFrame: effectView.frame];
blurDilutionView.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent: 0.5];
blurDilutionView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;//if not using AutoLayout
[effectView insertSubview:blurDilutionView atIndex:0];
3rd Option: use multiple UIVisualEffectView instances (I have not tried this yet, more of an idea). Apply an alpha of 0.1f on each. The more UIVisualEffectView views you have the more blurry the overall look. Once again, I have not tried this option yet!
Update:
As Axeva mentioned in the comments, Apple advises against adjusting the alpha to change the blur. So use these suggestions at your own potential peril.
tweak intensity of blur effect inside UIVisualEffectView in Swift
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.
How can blurriness of UIVisualEffectView be modified while dragging in iOS?
There is a way :)
As you've noticed, you can animate from a nil
effect to an effect like UIBlurEffectStyleDark
so if we add an animation and then pause the layer's animations we can control the progress of the effect by adjusting the layer's timeOffset
!
- (void) setupBlur {
// Setup the blur to start with no effect
self.blurredEffectView = [[UIVisualEffectView alloc] initWithEffect:nil];
// Add animation to desired blur effect
[UIView animateWithDuration:1.0 animations:^{
[self.blurredEffectView setEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]];
}];
// Pause layer animations
self.blurredEffectView.layer.speed = 0;
}
Adjust blur between 0.0 and 1.0 (animation duration):
- (void) adjustBlur:(CGFloat)blurIntensity {
self.blurredEffectView.layer.timeOffset = blurIntensity;
}
- Note: this won't work on iOS 8 where UIBlurEffect animations aren't supported.
How to fade a UIVisualEffectView and/or UIBlurEffect in and out?
I think this is new in iOS9, but you can now set the effect of a UIVisualEffectView
inside an animation block:
let overlay = UIVisualEffectView()
// Put it somewhere, give it a frame...
UIView.animate(withDuration: 0.5) {
overlay.effect = UIBlurEffect(style: .light)
}
Set it to nil
to remove.
VERY IMPORTANT - When testing this on the simulator, make sure to set your simulator's Graphics Quality Override to High Quality in order for this to work.
Less Blur with `Visual Effect View with Blur`?
The reason you're getting heavy blur is that the blur effect style affects the brightness level of the image, not the amount of blur applied.
Unfortunately, although Apple clearly has the ability to control the amount of blur applied programmatically--try dragging down slowly on the launchpad to watch the Spotlight blurring transition--I don't see any public API to pass a blur amount to UIBlurEffect
.
This post claims that adjusting the background color alpha will drive the blur amount. It's worth a try, but I don't see where that is documented: How to fade a UIVisualEffectView and/or UIBlurEffect in and out?
Related Topics
Swift: How to Change a Property's Value Without Calling Its Didset Function
What Does <> (Angle Brackets) Do on Class Names in Swift
Lazy Readonly Property in Swift
How to Make Rounded Corner Progress Bar in Swift
How to Set a Specific Default Time for a Date Picker in Swift
Access Properties via Subscripting in Swift
Pass Optional Block or Closure to a Function in Swift
Swift Mkmapview Drop a Pin Annotation to Current Location
Firebase Sign Out Not Working in Swift
Swift 3:Fatal Error: Double Value Cannot Be Converted to Int Because It Is Either Infinite or Nan
Swift Difference Between Final Var and Non-Final Var | Final Let and Non-Final Let
Skip Item When Performing Map in Swift
How to Properly Implement the Equatable Protocol in a Class Hierarchy