An object that implements some complex visual effects.
- iOS 8.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
Depending on the desired effect, the effect may affect content layered behind the view or content added to the visual effect view’s
content. Apply a visual effect view to an existing view and then apply a
UIVibrancy object to apply a blur or vibrancy effect to the existing view. After you add the visual effect view to the view hierarchy, add any subviews to the
content property of the visual effect view. Do not add subviews directly to the visual effect view itself.
Setting the Correct Alpha Value
When using the
UIVisual class, avoid alpha values that are less than 1. Creating views that are partially transparent causes the system to combine the view and all the associated subviews during an offscreen render pass.
UIVisual objects need to be combined as part of the content they are layered on top of in order to look correct. Setting the alpha to less than 1 on the visual effect view or any of its superviews causes many effects to look incorrect or not show up at all.
Using Masks with a UIVisualEffectView
Masks directly applied to a
UIVisual are forwarded to the internal views that provide the visual effect, including the
content itself. You can also apply masks directly to the
content. Applying a mask to a superview of a
UIVisual object causes the effect to fail, and an exception is thrown.
Any mask provided to
UIVisual is not the view that actually performs the mask. UIKit makes a copy of the view and applies it to each subview. To reflect a size change to the mask, you must apply the change to the original mask and reset it on the effect view.
Capturing a Snapshot of a UIVisualEffectView
Many effects require support from the window that hosts the
UIVisual. Attempting to take a snapshot of only the
UIVisual will result in a snapshot that does not contain the effect. To take a snapshot of a view hierarchy that contains a
UIVisual, you must take a snapshot of the entire
UIScreen that contains it.