|
@@ -1,3 +1,59 @@
|
|
|
# SwiftUI Visual Effects
|
|
|
|
|
|
-View modifiers that wrap UIVisualEffectView, with environment integration.
|
|
|
+View modifiers that wrap `UIVisualEffectView` and all of its associated objects, with environment integration for storing effect styles. Vibrancy effects will always use the current blur effect style for proper vibrancy-effect layering.
|
|
|
+
|
|
|
+### Adding and Styling a Blur Effect
|
|
|
+```swift
|
|
|
+YourView()
|
|
|
+ // Add a blur effect.
|
|
|
+ .blurEffect()
|
|
|
+ // Style the blur effect.
|
|
|
+ .blurEffectStyle(.systemChromeMaterial)
|
|
|
+```
|
|
|
+
|
|
|
+### Adding and Styling a Vibrancy Effect
|
|
|
+```swift
|
|
|
+YourView()
|
|
|
+ // Add a vibrancy effect.
|
|
|
+ .vibrancyEffect()
|
|
|
+ // Style the vibrancy effect.
|
|
|
+ .vibrancyEffectStyle(.fill)
|
|
|
+```
|
|
|
+
|
|
|
+### Adding and Styling Blur and Vibrancy Effects
|
|
|
+```swift
|
|
|
+ZStack {
|
|
|
+ YourBackgroundContent()
|
|
|
+ // Add a blur effect.
|
|
|
+ .blurEffect()
|
|
|
+
|
|
|
+ YourForegroundContent()
|
|
|
+ // Add a vibrancy effect.
|
|
|
+ .vibrancyEffect()
|
|
|
+}
|
|
|
+// Set the style for blur effects within this view.
|
|
|
+.blurEffectStyle(.systemChromeMaterial)
|
|
|
+// Set the style for vibrancy effects within this view.
|
|
|
+.vibrancyEffectStyle(.fill)
|
|
|
+```
|
|
|
+
|
|
|
+## Adding Blur and Vibrancy Effects Directly to a View
|
|
|
+
|
|
|
+Adding both a blur and vibrancy effect directly to a view only displays the blur effect.
|
|
|
+
|
|
|
+If you’d like to blur the view’s background content, while adding vibrancy to the view’s foreground content, use the `.background()` modifier, and pass `BlurEffect()` as its argument. Although `BlurEffect` may not be very Apple-like, it’s better than the `.blurEffect()` modifier implementation below.
|
|
|
+
|
|
|
+```swift
|
|
|
+YourView()
|
|
|
+ .vibrancyEffect()
|
|
|
+ .background(BlurEffect())
|
|
|
+
|
|
|
+// as opposed to:
|
|
|
+
|
|
|
+YourView()
|
|
|
+ .vibrancyEffect()
|
|
|
+ .background(
|
|
|
+ Color.clear
|
|
|
+ .blurEffect()
|
|
|
+ )
|
|
|
+```
|