【发布时间】:2021-01-30 09:09:57
【问题描述】:
我想为我的应用程序的背景完全着色,同时将内容定位在顶部,以便它离状态栏足够远,并且在那些拥有它的设备上处于一流水平。
如果我这样做:
@main
struct SampleApp: App {
var body: some Scene {
WindowGroup {
VStack {
Text("Top of my view")
Spacer()
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.yellow)
}
}
}
这会在安全区域下方的内容顶部显示文本。但只有内容区域是黄色的。安全区域为白色。
所以我在.background 修饰符下面添加.edgesIgnoringSafeAreas(.all)。
现在我的文字在缺口下方(或在屏幕顶部的状态栏文字下方)并且不可见。
我不想随意猜测顶部填充,因为这在有凹槽的手机上可能没问题,但在没有通知的手机或 iPad 上看起来就错了。
如果我将 VStack 放在 GeometryReader 内,则在忽略顶部安全区域时,reader.safeAreaInsets.top 为零 (0)。
我希望这是一个足够清楚的问题。有没有人遇到过这个问题并有解决方案?
【问题讨论】:
-
@vacawama
background将被限制为VStack宽度,因此在这种情况下可能需要frame。
标签: swiftui safearealayoutguide