小编K. *_*uha的帖子

SwiftUI - 脉动动画和更改颜色

我正在尝试根据某物的状态更改动画的颜色。颜色更改有效,但它会使用它为之前的(橙色)颜色设置动画。我不太明白为什么两种颜色都显示出来。有任何想法吗?

struct PulsatingView: View {

    var state = 1

    func colourToShow() -> Color {
        switch state {
        case 0:
            return Color.red
        case 1:
            return Color.orange
        case 2:
            return Color.green
        default:
            return Color.orange
        }
    }

    @State var animate = false
    var body: some View {
        VStack {
            ZStack {
                Circle().fill(colourToShow().opacity(0.25)).frame(width: 40, height: 40).scaleEffect(self.animate ? 1 : 0)
                Circle().fill(colourToShow().opacity(0.35)).frame(width: 30, height: 30).scaleEffect(self.animate ? 1 : 0)
                Circle().fill(colourToShow().opacity(0.45)).frame(width: 15, height: 15).scaleEffect(self.animate ? 1 : 0)
                Circle().fill(colourToShow()).frame(width: 6.25, height: 6.25)
            }
            .onAppear { self.animate.toggle() …
Run Code Online (Sandbox Code Playgroud)

animation colors swiftui

5
推荐指数
1
解决办法
2745
查看次数

标签 统计

animation ×1

colors ×1

swiftui ×1