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

时间:2020-08-21 19:47:10

标签: ios swift swiftui

我正在努力寻找文档来支持这一点,但是似乎值

GeometryReader.size.width和高度在键盘打开时更改。可以通过以下方式证明这一点:

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

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

如何防止这种情况发生?我想指定相对于屏幕尺寸的框架尺寸以支持许多屏幕尺寸...

1 个答案:

答案 0 :(得分:2)

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