显示键盘时如何在 TextView 下方添加更多填充

Ste*_*rov 6 ios swift swiftui

当我在 ScrollView 中有 TextField 并点击它时,键盘会按预期显示。但似乎 TextField 已向上移动到足以显示输入区域,但我希望移动到足够的位置,以便整体可见。否则它看起来像是被剪裁了的。我找不到改变这种行为的方法。

\n
struct ContentView: View {\n  @State var text:String = ""\n\n  var body: some View {\n    ScrollView {\n      VStack(spacing: 10) {\n        ForEach(1...12, id: \\.self) {\n          Text("\\($0)\xe2\x80\xa6")\n            .frame(height:50)\n        }\n        TextField("Label..", text: self.$text)\n          .padding(10)\n          .background(.white)\n          .cornerRadius(10)\n          .overlay(\n            RoundedRectangle(cornerRadius: 10)\n              .stroke(.blue, lineWidth: 1)\n          )\n      }\n      .padding()\n      .background(.red)\n    }\n  }\n   \n}\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

在此输入图像描述

\n

bur*_*nsi 12

使用 .safeAreaInset 修饰符。

\n
  @State var text:String = ""\n\n  var body: some View {\n    ScrollView {\n      VStack(spacing: 10) {\n        ForEach(1...12, id: \\.self) {\n          Text("\\($0)\xe2\x80\xa6")\n            .frame(height:50)\n        }\n        TextField("Label..", text: self.$text)\n          .padding(10)\n          .background(.white)\n          .cornerRadius(10)\n          .overlay(\n            RoundedRectangle(cornerRadius: 10)\n              .stroke(.blue, lineWidth: 1)\n          )\n      }\n      .padding()\n      .background(.red)\n    }.safeAreaInset(edge: .bottom) { //this will push the view when the keyboad is shown\n        Color.clear.frame(height: 30)\n    }\n  }\n
Run Code Online (Sandbox Code Playgroud)\n