Как подражать живой лирике анимированный градиент в swiftui? - PullRequest
0 голосов
/ 28 февраля 2020

Это, вероятно, очень сложно, но было бы полезно, если бы кто-то мог привести меня в правильном направлении. Я хотел бы создать плавную градиентную анимацию, как в приложении musi c. Я хочу использовать его для изменения цвета в зависимости от освещения для приложения умного дома. Я знаком с использованием LinearGradient и анимацией начальной и конечной точек, но это, очевидно, намного сложнее, но, надеюсь, кто-то знает, что я могу сделать.

Я обнаружил заголовок MPUGradientView , который включает CAGradientLayer, поэтому я не уверен, что его объединение градиентов каким-либо образом создает эффект.

Спасибо!

enter image description here

1 Ответ

0 голосов
/ 22 марта 2020

Не совсем воспроизводит скриншот, который вы просили, но он должен помочь вам начать. Вдохновленный отсюда: 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)
        }
    }
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...