如何在键盘打开时停止GeometryReader更改值



我很难找到支持这一点的文档,但的值似乎

GeometryReader.size.width&当键盘打开时,高度会发生变化。这可以通过以下方式来证明:

var body: some View {
TabView {
GeometryReader { g in
Rectangle()
.frame(width:g.size.width/2,height:g.size.height/20)

TextField(...)
}
}
}

它显示了当键盘通过点击文本字段打开时矩形的大小调整。

我该如何防止这种情况发生?我想指定相对于屏幕大小的框架大小,以支持许多屏幕大小。。。

您不需要几何体读取器就可以知道屏幕的大小。您可以使用UIScreen.main.bounds.widthUIScreen.main.bounds.height来获得屏幕的尺寸。钞票宽度总是显示水平尺寸,高度总是显示垂直尺寸(如果屏幕旋转(

将其添加到GeometryReader:

.ignoresSafeArea(.keyboard)

最新更新