圆形视图动画不当行为

问题描述

我在 swiftUI 上创建了一个加载视图,使用以下代码

var body: some View {
    
    ZStack {
        Circle()
            .trim(from: 0,to: 0.2)
            .stroke(AngularGradient(gradient: .init(colors: [settings.colors[self.settings.accentColor]]),center: .center),style: strokeStyle(linewidth: 6,lineCap: .round))
            .rotationEffect(Angle(degrees: isLoading ? 360 : 0))
        
        Circle()
            .trim(from: 0.2,to: 0.4)
            .stroke(AngularGradient(gradient: .init(colors: [.red]),lineCap: .round))
            .rotationEffect(Angle(degrees: isLoading ? -360 : 0))
            .frame(height: aspect / 2)
        
        Circle()
            .trim(from: 0.5,to: 0.7)
            .stroke(AngularGradient(gradient: .init(colors: [settings.colors[self.settings.accentColor]]),lineCap: .round))
            .rotationEffect(Angle(degrees: isLoading ? 360 : 0))
        
        Circle()
            .trim(from: 0.7,to: 0.9)
            .stroke(AngularGradient(gradient: .init(colors: [.red]),lineCap: .round))
            .rotationEffect(Angle(degrees: isLoading ? -360 : 0))
            .frame(height: aspect / 2)
            .onAppear() {
                self.isLoading = true
            }
    }
    .animation(Animation.linear(duration: 0.5).repeatForever(autoreverses: false))
    .frame(width: aspect,height: aspect,alignment: .center)
}

在 swiftui 预览画布上一切正常:

enter image description here

但是当在模拟器或真实设备上运行时,动画似乎坏了,它在动画的同时修改了视图位置:

enter image description here

任何人都知道这是一个错误,还是我遗漏了什么。提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...