相关疑难解决方法(0)

SwiftUI:在 NavigationView 中破坏了显式动画?

当我在 NavigationView 中放置显式动画时,作为不良副作用,它会为 NavigationView 内容的初始布局设置动画。无限动画会变得特别糟糕。有没有办法禁用这种副作用?

示例:下图应该是全屏蓝色背景上的红色动画加载器。相反,我得到了缩放蓝色背景的无限循环:

在此处输入图片说明

import SwiftUI

struct EscapingAnimationTest: View {
    var body: some View {
        NavigationView {
            VStack {
                Spacer()
                EscapingAnimationTest_Inner()
                Spacer()
            }
            .backgroundFill(Color.blue)
        }
    }
}

struct EscapingAnimationTest_Inner: View {
    @State var degrees: CGFloat = 0
    
    var body: some View {
        Circle()
            .trim(from: 0.0, to: 0.3)
            .stroke(Color.red, lineWidth: 5)
            .rotationEffect(Angle(degrees: degrees))
            .onAppear() {
                withAnimation(Animation.linear(duration: 1).repeatForever(autoreverses: false)) {
                    degrees = 360
                }
            }
    }
}

struct EscapingAnimationTest_Previews: PreviewProvider {
    static var previews: some View {
        EscapingAnimationTest()
    }
}
Run Code Online (Sandbox Code Playgroud)

animation swiftui

17
推荐指数
1
解决办法
1008
查看次数

标签 统计

animation ×1

swiftui ×1