在使用 SwiftUI 时,我注意到一个非常不寻常的行为。在 iOS 14 上,当在模态屏幕上显示键盘时,父 View 也会被挤压。为了说明我的意思,我制作了一个简短的演示 View 和一个显示问题的简短 gif。你可以发现here .
struct SqueezTestView: View {
@State var isModalPresented = false
@State var text = ""
@State var colors: [Color] = [.red, .green, .blue, .orange, .pink, .purple, .yellow]
var body: some View {
NavigationView {
VStack {
ForEach(0..<colors.count) { index in
colors[index]
.animation(.linear(duration: 1))
}
}
.navigationBarTitle("Squeez")
.navigationBarItems(leading: Button("Shuffel") { colors.shuffle() }, trailing: Button("Modal") { isModalPresented = true })
.sheet(isPresented: $isModalPresented) {
NavigationView {
VStack {
TextField("Test", text: $text, onCommit: {isModalPresented = false})
.padding()
Spacer()
}
.navigationBarTitle("Modal", displayMode: .inline)
.navigationBarItems(trailing: Button("Done") { isModalPresented = false })
}
}
}
}
}
我预计只有模态视图会被挤压,而父 View 保持不变。在这种情况下,每次我在键盘可见时关闭模式时,父 View 都会动画化。有什么我错过的或者这个问题有任何已知的修复吗?
最佳答案
关于当模态显示键盘时,SwiftUI 会挤压父 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63951647/