Swiftui 带底部过渡的ScrollView出现了奇怪的行为?

Swiftui 带底部过渡的ScrollView出现了奇怪的行为?,swiftui,swiftui-animation,Swiftui,Swiftui Animation,只需复制并粘贴代码即可查看行为。我想确认我是否做错了什么,或者这是一个bug import SwiftUI struct StackOverflow13: View { @State var hide: Bool = false var body: some View { VStack { Spacer() Button(action: { self.hide.toggle()

只需复制并粘贴代码即可查看行为。我想确认我是否做错了什么,或者这是一个bug

import SwiftUI

struct StackOverflow13: View {
    @State var hide: Bool = false
    var body: some View {
        VStack {
            Spacer()
            Button(action: {
                self.hide.toggle()
            }) {
                Text("Hide")
            }
            Spacer()

            if(!hide) {
                ScrollView(.horizontal, showsIndicators: false) {
                    HStack {
                        ForEach(1...20, id:\.self) {
                            Text("\($0)")
                        }
                    }
                }
                .frame(height: 50, alignment: .center)
                .padding()
                .background(Color.red)
                .animation(.linear)
                .transition(.move(edge: .bottom))
            }

        }.edgesIgnoringSafeArea(.all)
    }
}

struct StackOverflow13_Previews: PreviewProvider {
    static var previews: some View {
        StackOverflow13()
    }
}

在运行代码并按下
Hide
时,如果我删除
.transition
修饰符,数字将开始无限抖动,一切似乎都正常


另外,需要注意的是,删除
。edgesIgnoringSafeArea
修饰符可以解决这个问题,但我确实需要这个修饰符。

我在iPhone(10到11)上的代码有相同的抖动行为,但在旧款iPhone和iPad上没有。但是如果我使用

.frame(height: 70, alignment: .center)
震动消失了。我的猜测是,在某些设备/分辨率上,没有足够的空间渲染/布局高度为50的ScrollView


使用macos 10.15.5、Xcode 11.5和11.6 beta版,以ios 13.5和MacCatalyst为目标。在真实设备iPhone和iPad以及各种但并非所有模拟器上进行测试

是的,我在不同的屏幕尺寸上看到相同的行为,我会向苹果公司提交一份错误报告。谢谢你的努力。