为什么这个简单的不透明动画在 SwiftUI 中不起作用?

Why isn't this simple opacity animation working in SwiftUI?

我试图为文本制作一个简单的淡入淡出动画,但是当我尝试这样做时它不起作用。不透明度没有平滑的增加和减少,它只是跳到完全并且没有不透明度。

struct Test: View {
    @State var showing = false
    
    var body: some View {
        VStack {
            Button("Toggle") {
                self.showing.toggle()
            }
            
            if showing {
                Text("Hello")
                    .transition(.opacity)
                    .animation(.easeInOut)
            }
        }
    }
}

有谁知道为什么这不能按预期工作?当在视图层次结构中插入和删除文本时,我希望它能平滑地淡入淡出过渡。

showingfalse 时,没有人可以动画了。而是使用以下内容:

VStack {
    if showing {
        Text("Hello")
            .transition(.opacity)
    }
}.animation(.easeInOut)   // << here !!