ios - SwiftUI:限制键盘链接视图的方向
问题描述
在使用 Xcode 12 近 3 个月后,我一直面临的一件事是键盘改变了视图的方向。虽然有时它很有帮助,因为您不必根据键盘高度手动更改偏移量,但有时您只需要更多地控制视图的外观。
视频
在下面的视频中,当键盘弹出时,文本字段会向上移动,但移动的幅度太大了。我一直在尝试使用粘在键盘上的登录按钮来移动视图。
代码
VStack(spacing: 40) {
SignInView() // Consists 1 TextField, 1 SecureField and 1 Button
Rectangle()
.frame(width: screen.width, height: 2, alignment: .center)
.foregroundColor(Color(.systemGray5))
.padding(.top, 100)
HStack(spacing: 0.0) {
Text("Don't have an account? ")
Button(action: {
...
}) {
Text("Create one.")
.foregroundColor(Color("blue"))
}
}
.font(.system(size: 16, weight: .regular))
}
我如何尝试解决它。
我试图通过应用偏移量来取消自动偏移量keyboard.current
,其中键盘代表一个KeyboardResponder
类,并将偏移量减去 20 以在键盘和登录按钮之间提供一点呼吸区域。不幸的是,这没有用。即使确实如此,我也确信这不是最好的解决方案。
@State private var keyboard = KeyboardResponder()
var body: some View {
VStack(spacing: 40) {
...
}
.offset(y: keyboard.currentHeight != 0 ? (keyboard.currentHeight - 20) : 0)
}
解决方案
推荐阅读
- prolog - Prolog - 1 和 0.5 之间的比较失败
- go - 无需阅读即可确定 Golang Gzip 文件的长度?
- javascript - purifycss 没有按预期运行
- javascript - 在动态添加的元素上使用 querySelectorAll
- c# - 如何存储然后执行 linq2db 查询?
- c# - 在 ASP.NET MVC 项目中设置具有不同帐户和视图的多个公司的最佳实践
- javascript - 将格雷码转换为二进制,反之亦然
- php - Symfony:如何使用自己的条件禁用 CollectionType 中名称属性的输入 TextType
- latex - 如何垂直居中我的乳胶表格单元格
- apache-kafka - 使用 kafka-connect 转换 kafka 消息有意义吗?