Animation 为什么旋转动画会垂直移动?

Animation 为什么旋转动画会垂直移动?,animation,swiftui,Animation,Swiftui,我正在尝试实现在屏幕中心旋转的加载程序: struct Loader : View { @State var isRotated = false var animation: Animation { Animation.linear .repeatForever(autoreverses: false) } var body: some View { VStack {

我正在尝试实现在屏幕中心旋转的加载程序:

struct Loader : View {
    
    @State var isRotated = false
    var animation: Animation {
        Animation.linear
            .repeatForever(autoreverses: false)
    }
    
    var body: some View {
        VStack {
            Circle()
                .trim(from: 0, to: 0.8)
                .stroke(AngularGradient(gradient: .init(colors: [Color(#colorLiteral(red: 0.9069682956, green: 0.7839415669, blue: 0.9612388015, alpha: 1)),.white]), center: .center), style: StrokeStyle(lineWidth: 8, lineCap: .round))
                .frame(width: 45, height: 45)
                .rotationEffect(Angle.degrees(isRotated ? 360 : 0))
                .animation(animation)
        }
        .onAppear{
            self.isRotated.toggle()
        }
    }
}

<> >我希望加载器在屏幕中间旋转,但是当我运行我的代码时,圆圈在Y轴上每旋转一次。为什么要这样做?

是否将
.animation(animation)
更改为
.animation(animation,value:isRotated)
帮助?是的,修复了它!谢谢:)将
.animation(animation)
更改为
.animation(animation,value:isRotated)
有帮助吗?是的,修复了它!谢谢:)