SwiftUI 在模拟器上损坏动画

SwiftUI broken animation on simulator

我一直在研究 SwiftUI 及其动画。下面是我在带有 scaleEffect 动画的 navigationView 中的圆圈代码

@State private var isAnimating = false

NavigationView{
VStack{
        ZStack{
            Circle()
                .fill(Color.blue)
                .shadow(radius: 15)
                .frame(width: 150, height: 150, alignment: .center)
                .scaleEffect(isAnimating ? 1.2 : 1)
                .onAppear() {
                    withAnimation(Animation.easeInOut(duration: 1.2).repeatForever()){
                        self.isAnimating = true
                    }
                }
        }
        .padding(.top, 140)
    Spacer()
}
.edgesIgnoringSafeArea(.all)
}

我的预览显示了预期的动画:

但在模拟器上,动画完全不同:

这是 SwiftUI 的错误吗?我这里做错了什么?

这是一个解决方案。使用 Xcode 12.1 / iOS 14.1

测试
Circle()
    .fill(Color.blue)
    .shadow(radius: 15)
    .frame(width: 150, height: 150, alignment: .center)
    .scaleEffect(isAnimating ? 1.2 : 1)
    .animation(Animation.easeInOut(duration: 1.2).repeatForever(), value: isAnimating)
    .onAppear() {
        self.isAnimating = true
    }

注意:在任何奇怪的动画效果情况下,请尝试检查您的动画并将每个动画限制为仅应跟踪的状态的值。