iosobjective-cuiviewuikituivisualeffectview

How to use UIVisualEffectView to Blur Image?


Could someone give a small example of applying the blur to an image? I've been trying to figure out the code for a while now :( still new at obj c!

The UIVisualEffectView provides a simple abstraction over complex visual effects. Depending on the desired effect, the results may affect content layered behind the view or content added to the view’s contentView.

Apply a UIVisualEffectView to an existing view to apply a blur or vibrancy effect to the exiting view. After you add the UIVisualEffectView to the view hierarchy, add any subviews to the contentView of the UIVisualEffectView. Do not add subviews directly to the UIVisualEffectView itself.

https://developer.apple.com/documentation/uikit/uivisualeffectview#//apple_ref/occ/instp/UIVisualEffectView/contentView


Solution

  • Just put this blur view on the imageView. Here is an example in Objective-C:

    UIVisualEffect *blurEffect;
    blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    
    UIVisualEffectView *visualEffectView;
    visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
    
    visualEffectView.frame = imageView.bounds;
    [imageView addSubview:visualEffectView];
    

    and Swift:

    var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))    
    
    visualEffectView.frame = imageView.bounds
    
    imageView.addSubview(visualEffectView)