Swiftui 动画影响整个层次结构

Swiftui 动画影响整个层次结构,swiftui,swiftui-animation,Swiftui,Swiftui Animation,我有一段非常简单的代码,可以在swiftui静态预览中正确显示,并在iOS中正确运行。但是,当我选择macOS目标和实时预览时,整个层次结构会从上角重复向下移动 这是我正在试验的代码(使用Xcode版本12.3(12C33)): 我的期望是,它应该从屏幕的左上角(1200x1200)绘制一个纯蓝色矩形。然后,它应该在其顶部,也在左上角绘制一个白色矩形,大小为100x100。白色矩形被一条虚线划过,这将使其相位具有动画效果——我希望在虚线矩形上看到爬行蚂蚁的效果 然而,当我为MacOS选择“实时预

我有一段非常简单的代码,可以在swiftui静态预览中正确显示,并在iOS中正确运行。但是,当我选择macOS目标和实时预览时,整个层次结构会从上角重复向下移动

这是我正在试验的代码(使用Xcode版本12.3(12C33)):

我的期望是,它应该从屏幕的左上角(1200x1200)绘制一个纯蓝色矩形。然后,它应该在其顶部,也在左上角绘制一个白色矩形,大小为100x100。白色矩形被一条虚线划过,这将使其相位具有动画效果——我希望在虚线矩形上看到爬行蚂蚁的效果

然而,当我为MacOS选择“实时预览”时,它会生成一个带有预期的蓝色矩形和白色虚线的窗口。但整个ZStack从左上角反复向下移动

这是macOS上swiftui中的一个bug吗?还是我在这里遗漏了什么


如果我使用VStack而不是ZStack,我会观察到类似的行为。

一些动画可能在预览中被破坏。尝试使用真实的设备/模拟器。我检查了你的代码在我的Mac和模拟器上是否对我有效。一些动画可能在预览中被破坏。尝试使用真实的设备/模拟器。我检查了你的代码在我的Mac和模拟器上是否对我有效。
//
//  BrokenAnimation.swift
//

import SwiftUI

struct BrokenAnimation: View {
    @State var phase: CGFloat = 0
    
    var body: some View {
        ZStack(alignment: Alignment.topLeading) {
            Rectangle()
                .fill(Color.blue)
                .frame(width: 1200, height: 1200)
            Rectangle()
                .stroke(style: StrokeStyle(lineWidth: 2, lineCap: .butt, lineJoin: .round, miterLimit: 1, dash: [5], dashPhase: phase))
                .frame(width: 100, height: 100, alignment: Alignment.topLeading)
                .foregroundColor(.white)
                .onAppear {
                    withAnimation(Animation.linear.repeatForever(autoreverses: false)) {
                        self.phase += 10
                    }
                }
        }
    }
}

struct BrokenAnimation_Previews: PreviewProvider {
    static var previews: some View {
        BrokenAnimation()
    }
}