出现键盘时,简单的 SwiftUI 背景图像一直在移动
Posted
技术标签:
【中文标题】出现键盘时,简单的 SwiftUI 背景图像一直在移动【英文标题】:Simple SwiftUI Background Image keeps moving when keyboard appears 【发布时间】:2020-09-23 13:15:17 【问题描述】:这让我发疯了。在 ios14 中处理背景图片似乎有了新的行为。
期望的效果是:一个固定的背景图像,填充屏幕,忽略安全区域,并且在键盘弹出时完全静止。 相反,键盘使图像向右滑动,即使键盘从底部升起 (??)。
这是一个 SwiftUI 错误吗? 任何想法/解决方法表示赞赏。
产生这个的代码非常小:
import SwiftUI
struct ContentView: View
@State var name = "Name"
var body: some View
GeometryReader geometry in
VStack
TextField("Placeholder", text: $name)
.frame(width: geometry.size.width, height: geometry.size.height)
.background(
Image("bricks")
.resizable()
.scaledToFill()
.edgesIgnoringSafeArea(.all)
)
【问题讨论】:
【参考方案1】:好的,我们按照如下方式添加.frame
调用可以让背景图像按需要显示。
(请特别注意.frame
调用省略了height
参数。在之前的许多解决此问题的尝试中,都包含了高度,从而导致了不同的不良行为)
.background(
Image("bricks")
.resizable()
.scaledToFill()
.frame(width: geometry.size.width)
.edgesIgnoringSafeArea(.all)
)
【讨论】:
以上是关于出现键盘时,简单的 SwiftUI 背景图像一直在移动的主要内容,如果未能解决你的问题,请参考以下文章
出现键盘时滚动到 SwiftUI Scrollview 的最底部
Swift UI VStack 对齐。按下时使文本字段与键盘一起出现