swiftUI:是否可以让背景色忽略安全区,内容是否坚持安全区?

swiftUI:是否可以让背景色忽略安全区,内容是否坚持安全区?,swiftui,Swiftui,我想将.edgesIgnoringSafeArea(.all)放在VStack上,以便背景色覆盖整个视图 VStack { Text("Foo") } .edgesIgnoringSafeArea(.all) .background(Color.red) 这以背景色覆盖了整个视图,这是我想要的行为,但是文本现在也忽略了安全区域。有没有更好的方法可以让背景覆盖整个视图而不牺牲内部内容的安全区域覆盖率?您只希望颜色延伸到安全区域,因此只需在颜色上添加Ignoressa

我想将
.edgesIgnoringSafeArea(.all)
放在
VStack
上,以便背景色覆盖整个视图

VStack {
    Text("Foo")
}
.edgesIgnoringSafeArea(.all)
.background(Color.red)


这以背景色覆盖了整个视图,这是我想要的行为,但是文本现在也忽略了安全区域。有没有更好的方法可以让背景覆盖整个视图而不牺牲内部内容的安全区域覆盖率?

您只希望
颜色
延伸到安全区域,因此只需在
颜色
上添加
Ignoressaferarea

此外,正如所示,您应该使用而不是不推荐的


完整示例:

struct ContentView: View {
    var body: some View {
        VStack {
            HStack {
                Text("Foo")
                Spacer()
            }
            Spacer()
        }
        .background(
            Color.red.ignoresSafeArea() /// `edgesIgnoringSafeArea` is deprecated
        )
    }
}
结果:


.edgesIgnoringSafeArea()
已被弃用。您应该使用
.ignoresSafeArea()
。漂亮,谢谢!我不知道你可以在颜色上使用修改器,比如that@mitchellOcavoos这是因为视图修改器在视图上工作,而SwiftUI的
颜色实际上是一个视图。就像
VStack
Text
矩形
,等等!谢谢你的解释!
struct ContentView: View {
    var body: some View {
        VStack {
            HStack {
                Text("Foo")
                Spacer()
            }
            Spacer()
        }
        .background(
            Color.red.ignoresSafeArea() /// `edgesIgnoringSafeArea` is deprecated
        )
    }
}