SwiftUI - 如何防止 sheet 中的键盘推高我的主 UI
SwiftUI - How to prevent keyboard in a sheet to push up my main UI
我在入职期间使用 sheets (SwiftUI) 让人们输入文本,但是每当 sheet 被关闭时,背景中的元素就会移动,就好像键盘是上下推他们。如果键盘不在屏幕上,当 sheet 消失时,背景中的元素不会移动。我试过使用 .ignoresSafeArea(.keyboard, edges: .bottom) 但它似乎不起作用。
关于如何在使用键盘 sheet 被关闭时“修复”背景元素有什么想法吗?
private var welcomeSection5: some View {
ZStack {
VStack {
// This is the part that moves up and down
TellSlideView(text: "And what's your age \(userName) if I may?")
Spacer()
Button(action: {
displaySheet.toggle()
}, label: {
Text("Enter age")
.padding()
.foregroundColor(Color.white)
.frame(maxWidth: .infinity)
.background(Color.MyTheme.Purple)
.cornerRadius(15)
.padding(.horizontal)
.padding(.bottom, 40)
})
}.sheet(isPresented: $displaySheet) {
AddUserAgeView(onboardingState: $onboardingState)
}.ignoresSafeArea(.keyboard, edges: .bottom)
}
}
我曾经遇到过类似的问题。我无法重现您的代码,但您可以尝试像这样使用 GeometryRadar:
GeometryReader { geometry in
ZStack {
VStack {
// This is the part that moves up and down
}
}
}
.ignoresSafeArea(.keyboard, edges: .bottom)
我在入职期间使用 sheets (SwiftUI) 让人们输入文本,但是每当 sheet 被关闭时,背景中的元素就会移动,就好像键盘是上下推他们。如果键盘不在屏幕上,当 sheet 消失时,背景中的元素不会移动。我试过使用 .ignoresSafeArea(.keyboard, edges: .bottom) 但它似乎不起作用。
关于如何在使用键盘 sheet 被关闭时“修复”背景元素有什么想法吗?
private var welcomeSection5: some View {
ZStack {
VStack {
// This is the part that moves up and down
TellSlideView(text: "And what's your age \(userName) if I may?")
Spacer()
Button(action: {
displaySheet.toggle()
}, label: {
Text("Enter age")
.padding()
.foregroundColor(Color.white)
.frame(maxWidth: .infinity)
.background(Color.MyTheme.Purple)
.cornerRadius(15)
.padding(.horizontal)
.padding(.bottom, 40)
})
}.sheet(isPresented: $displaySheet) {
AddUserAgeView(onboardingState: $onboardingState)
}.ignoresSafeArea(.keyboard, edges: .bottom)
}
}
我曾经遇到过类似的问题。我无法重现您的代码,但您可以尝试像这样使用 GeometryRadar:
GeometryReader { geometry in
ZStack {
VStack {
// This is the part that moves up and down
}
}
}
.ignoresSafeArea(.keyboard, edges: .bottom)