Цепочка анимации не работает должным образом в SwiftUI

Я хочу создать пульсирующий круг с постоянно повторяющейся анимацией. Он должен иметь постепенное изменение размера и мгновенное изменение цвета при изменении направления анимации. У меня есть две разные анимации для этого, но только последняя влияет на обе (размер и изменение цвета).

struct SwiftUIView: View {
    @State private var animationStarted = false
    
    let side = UIScreen.main.bounds.size.width
    
    let animation1 = Animation.easeInOut(duration: 0.3).delay(5.7)
    .repeatForever(autoreverses: true)

    let animation2 = Animation.easeInOut(duration: 6)
        .repeatForever(autoreverses: true)

    var body: some View {
        HStack {
            VStack {
                HStack {
                    Circle()
                        .foregroundColor(self.animationStarted ? Color.pink : Color.blue)
                        .animation(animation1)
                        .frame(width: self.animationStarted ? 10 : side, height: self.animationStarted ? 10 : side)
                        .animation(animation2)
                        .onAppear {
                            self.animationStarted.toggle()
                    }
                }
            }.frame(height: side)
        }.frame(width: side)
    }
}

0 ответов

Другие вопросы по тегам