SwiftUI 导航栏多余 Space 即使隐藏

SwiftUI Navigation Bar Excess Space even when hidden

我有一个包含一些元素的导航视图(示例如下所示,请注意上面的 space),由于某种原因,顶部有多余的 space。更具体地说,我正在为 iPad 开发一个应用程序,顶部多余的 space 困扰着我。我的代码摘录如下所示。

var body: some View {

    NavigationView {
        Text("There is an excess space above")
    }.navigationViewStyle(StackNavigationViewStyle())
    .navigationBarTitle(Text(""), displayMode: .inline)
    .navigationBarHidden(true)
    .edgesIgnoringSafeArea(.top)
}

由于问题已解决 ,我使用了 .navigationViewStyle(StackNavigationViewStyle()),调用其他方法只是为了尝试删除此 space(来自此处的其他类似问题) ,但最终没有奏效。 iPhone 和 iPad 模拟都会发生这种情况。谢谢

必须在内部导航视图中指定这些修饰符,如下所示

NavigationView {
    Text("There is an excess space above")
       .navigationBarTitle(Text(""), displayMode: .inline)  // !!
       .navigationBarHidden(true)                           // !!
}.navigationViewStyle(StackNavigationViewStyle())
.edgesIgnoringSafeArea(.top)

经过几次尝试和错误,我设法让蓝色边框覆盖了整个屏幕(请注意以下屏幕截图中的蓝色边框)。还不完全确定为什么,但必须存在以下所有行才能使解决方案起作用。 @Asperi 提到我们必须将修饰符添加到导航视图内部,但出于某种原因,我们必须同时添加到 NavigationView 本身及其内部。

    var body: some View {
        NavigationView {
            Text("There is no more excess space, the blue outline covers the entire screen")
            .frame(maxWidth: .infinity, maxHeight: .infinity) // Fill screen
            .navigationBarTitle("")
            .navigationBarHidden(true)
        }
        .navigationViewStyle(StackNavigationViewStyle())
        .navigationBarTitle("")
        .edgesIgnoringSafeArea(.all)
    }