如何在swiftui中模拟现场歌词动画渐变?
How to emulate the live lyrics animated gradient in swiftui?
它可能非常复杂,但如果有人能引导我朝着正确的方向前进,我将不胜感激。我想创建一个流动的渐变动画,就像音乐应用程序中的那样。我想用它来根据智能家居应用程序的灯光改变颜色。我熟悉使用 LinearGradient
并为起点和终点设置动画,但这显然要复杂得多,但希望有人知道我能做什么。
我找到了一个 MPUGradientView header,其中包含 CAGradientLayer
,所以我不确定它是否结合了渐变以某种方式产生效果。
谢谢!
没有完全重现您要求的屏幕截图,但它应该可以帮助您入门。
灵感来自这里:https://nerdyak.tech/development/2019/09/30/animating-gradients-swiftui.html
struct MainView: View {
@State var gradient = [Color.red, Color.purple, Color.orange]
@State var startPoint = UnitPoint(x: 0, y: 0)
@State var endPoint = UnitPoint(x: 0, y: 2)
var body: some View {
ZStack {
LinearGradient(gradient: Gradient(colors: self.gradient), startPoint: self.startPoint, endPoint: self.endPoint)
.overlay(
Text("Hello world")
)
}
.edgesIgnoringSafeArea(.all)
.onAppear {
withAnimation(Animation.easeInOut(duration: 6).repeatForever(autoreverses: true)) {
self.startPoint = UnitPoint(x: 1, y: -1)
self.endPoint = UnitPoint(x: 0, y: 1)
}
}
}}
我最终在大多数 SwiftUI 中得到了一些非常接近的东西,但它需要一个图像。
这是它的外观预览:
https://twitter.com/priva2804/status/1284439692352434178?s=21
这里是要点:
https://gist.github.com/Priva28/22fbae9dbe04a08fadf748793dd23d00
它可能非常复杂,但如果有人能引导我朝着正确的方向前进,我将不胜感激。我想创建一个流动的渐变动画,就像音乐应用程序中的那样。我想用它来根据智能家居应用程序的灯光改变颜色。我熟悉使用 LinearGradient
并为起点和终点设置动画,但这显然要复杂得多,但希望有人知道我能做什么。
我找到了一个 MPUGradientView header,其中包含 CAGradientLayer
,所以我不确定它是否结合了渐变以某种方式产生效果。
谢谢!
没有完全重现您要求的屏幕截图,但它应该可以帮助您入门。 灵感来自这里:https://nerdyak.tech/development/2019/09/30/animating-gradients-swiftui.html
struct MainView: View {
@State var gradient = [Color.red, Color.purple, Color.orange]
@State var startPoint = UnitPoint(x: 0, y: 0)
@State var endPoint = UnitPoint(x: 0, y: 2)
var body: some View {
ZStack {
LinearGradient(gradient: Gradient(colors: self.gradient), startPoint: self.startPoint, endPoint: self.endPoint)
.overlay(
Text("Hello world")
)
}
.edgesIgnoringSafeArea(.all)
.onAppear {
withAnimation(Animation.easeInOut(duration: 6).repeatForever(autoreverses: true)) {
self.startPoint = UnitPoint(x: 1, y: -1)
self.endPoint = UnitPoint(x: 0, y: 1)
}
}
}}
我最终在大多数 SwiftUI 中得到了一些非常接近的东西,但它需要一个图像。
这是它的外观预览: https://twitter.com/priva2804/status/1284439692352434178?s=21
这里是要点: https://gist.github.com/Priva28/22fbae9dbe04a08fadf748793dd23d00