当键盘出现时,简单的 SwiftUI 背景图像不断移动

Rya*_*yan 5 swiftui ios14 xcode12

这让我抓狂。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)
            )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 10

好吧,事实证明,.frame按如下方式添加调用可以让背景图像根据需要显示。

(特别注意,该.frame调用省略了height参数。在之前的许多解决此问题的尝试中,都包含了高度,从而导致了不同的不良行为)

.background(
    Image("bricks")
        .resizable()
        .scaledToFill()
        .frame(width: geometry.size.width)
        .edgesIgnoringSafeArea(.all)
)
Run Code Online (Sandbox Code Playgroud)