SwiftUI:为什么 proxy.safeAreaInsets.bottom 的高度等于 keyboardHeight?
SwiftUI: Why is the height of proxy.safeAreaInsets.bottom equal to keyboardHeight?
所以iPhone 11 Pro Max上的safeAreaInset.bottom是34.0,但是当键盘打开时,它把safeAreaInset.bottom改为键盘的高度(346.0点) .有什么方法可以在键盘打开时访问 safeAreaInset.bottom 值 (34.0)?
作为参考,我的内容视图中有一个几何图形 reader:
var body: some View {
GeometryReader { proxy in
//I pass in proxy into views in here and then access the safe area with proxy.safeAreaInsets.bottom
}
}
我还需要它能够适应所有设备,而且为不同的设备制作一堆 if 语句似乎是一个非常糟糕的解决方案。有人有建议吗?
这是可能的解决方案。用 Xcode 12 / iOS 14
测试
var body: some View
{
GeometryReader
{ gp in
VStack
{
Text("Bottom: \(gp.safeAreaInsets.bottom)")
Spacer()
TextField("Value", text: $selection)
Spacer()
}
}.ignoresSafeArea(.keyboard, edges: .bottom) // << here !!
}
所以iPhone 11 Pro Max上的safeAreaInset.bottom是34.0,但是当键盘打开时,它把safeAreaInset.bottom改为键盘的高度(346.0点) .有什么方法可以在键盘打开时访问 safeAreaInset.bottom 值 (34.0)?
作为参考,我的内容视图中有一个几何图形 reader:
var body: some View {
GeometryReader { proxy in
//I pass in proxy into views in here and then access the safe area with proxy.safeAreaInsets.bottom
}
}
我还需要它能够适应所有设备,而且为不同的设备制作一堆 if 语句似乎是一个非常糟糕的解决方案。有人有建议吗?
这是可能的解决方案。用 Xcode 12 / iOS 14
测试var body: some View
{
GeometryReader
{ gp in
VStack
{
Text("Bottom: \(gp.safeAreaInsets.bottom)")
Spacer()
TextField("Value", text: $selection)
Spacer()
}
}.ignoresSafeArea(.keyboard, edges: .bottom) // << here !!
}