SwiftUI中如何避免底部按钮覆盖在键盘上方?
解决方案
要让底部按钮固定在屏幕底部、不随键盘上移,给按钮添加ignoresSafeArea(.keyboard)修饰符即可。修改后的完整代码如下:
VStack { ScrollView { ForEach(0..<50) { _ in Text("Editor") } VStack { TextField("My Text Field", text: $text) // 修正原代码引号与括号不匹配的语法错误 } .frame(minHeight: 200, maxHeight: 200) .overlay( RoundedRectangle(cornerRadius: 6.0) .stroke(.gray, lineWidth: 1.0) ) .padding() } Button("My Button") {} // 补充原代码缺失的点击事件闭包 .background(.green) .padding() .ignoresSafeArea(.keyboard) // 核心设置:忽略键盘触发的安全区域调整 }
原理说明
- SwiftUI默认会监听键盘弹出事件,自动调整布局让内容避开键盘区域,这就是按钮被顶起的原因。
- 加上
ignoresSafeArea(.keyboard)后,按钮所在视图会忽略键盘带来的安全区域变化,保持原本在屏幕底部的位置。
内容的提问来源于stack exchange,提问作者Vikash Kumar Chaubey
相关产品推荐
相关产品推荐

