Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
import SwiftUI
import PlaygroundSupport
struct ContentView: View {
@State var gradientAngle: Double = 0
var colors = [
Color(UIColor.systemRed),
Color(UIColor.systemOrange),
Color(UIColor.systemYellow),
Color(UIColor.systemGreen),
Color(UIColor.systemBlue),
Color(UIColor.systemIndigo),
Color(UIColor.systemPurple)
]
var body: some View {
ZStack {
Rectangle()
.fill(
AngularGradient(gradient: Gradient(colors: colors), center: .center, angle: .degrees(gradientAngle))
)
.overlay(
Blur(style: .systemThinMaterial)
)
}
.onAppear {
withAnimation(Animation.linear(duration: 12).repeatForever(autoreverses: false)) {
self.gradientAngle = 360
}
}
}
}
struct Blur: UIViewRepresentable {
var style: UIBlurEffect.Style
func makeUIView(context: Context) -> UIVisualEffectView {
return UIVisualEffectView(effect: UIBlurEffect(style: style))
}
func updateUIView(_ uiView: UIVisualEffectView, context: Context) {
uiView.effect = UIBlurEffect(style: style)
}
}
PlaygroundPage.current.setLiveView(ContentView())
@zackshapiro

This comment has been minimized.

Copy link

@zackshapiro zackshapiro commented Jul 16, 2020

Tiny note that won't affect anything, var style can be a let since its value doesn't change

@jordansinger

This comment has been minimized.

Copy link
Owner Author

@jordansinger jordansinger commented Jul 16, 2020

Tiny note that won't affect anything, var style can be a let since its value doesn't change

💯💯

@SandeepAggarwal

This comment has been minimized.

Copy link

@SandeepAggarwal SandeepAggarwal commented Jul 17, 2020

Very nice!
I am just curious about the use of ZStack here, will it make any difference if I remove it ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment