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



这让我发疯了。在 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)
)
}
}
}

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

(特别请注意,.frame调用省略了height参数。在之前多次尝试解决这个问题时,包括高度,导致不同的不良行为)

.background(
Image("bricks")
.resizable()
.scaledToFill()
.frame(width: geometry.size.width)
.edgesIgnoringSafeArea(.all)
)

对我来说,当我将背景图像包装在一个忽略安全区域的GeometryReader中时,它起作用了,如下所示:

GeometryReader { geo in
Image(uiImage: Backgrounds.chalk)
.resizable(resizingMode: .tile)
.scaledToFill()
.frame(width: geo.size.width, height: geo.size.height)
}
.edgesIgnoringSafeArea(.all)

这对我来说是工作:

.background(
Image("bricks")
.resizable()
.scaledToFill()
.frame(width: geometry.size.width)

)
.edgesIgnoringSafeArea(.all)

相关内容

  • 没有找到相关文章

最新更新