Анимация изменения цвета - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь оживить изменение цвета в каком-либо тексте, но не могу заставить его постепенно меняться. Я пробовал как неявную, так и явную анимацию, как видно из приведенного ниже кода, но без кубиков ....

    struct Example: View {

    @State var showing = false

    var body: some View {
        VStack {
            Text("test text").foregroundColor(showing ? .red : .blue)
                .animation(.easeIn(duration: 2))
            Button(action: toggle) {
                Text("Toggle")
            }
        }
    }

    func toggle() {
        withAnimation(.easeIn(duration: 2)) {self.showing.toggle()}
    }

}

Кто-нибудь может дать мне несколько советов?

1 Ответ

1 голос

К сожалению, вы не можете оживить .foregroundColor. Но вы можете оживить .colorMultiply. Так что в вашем случае это будет работать:

struct ColorChangeAnimation: View {

    @State private var multiplyColor: Color = .blue
    var body: some View {
        VStack {
            Text("test text")
                .foregroundColor(.white)
                .colorMultiply(multiplyColor)

            Button(action: toggle) {
                Text("Toggle")
            }
        }
    }

    func toggle() {
        withAnimation(.easeIn(duration: 2)) {
            self.multiplyColor = (self.multiplyColor == .red) ? .blue : .red
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...