NavigationView 忽略 edgesIgnoreSafeArea(.top)

NavigationView ignores edgesIgnoreSafeArea(.top)

我在导航视图方面遇到了问题。当我设置它的背景颜色时,我看到下面的子视图(红色背景)。我也想为 NavigationView 占用顶部区域。

struct ContentView: View {
    init() {
        UINavigationBar.appearance().backgroundColor = .black
    }

    var body: some View {
        NavigationView {
            ZStack {
                Color(.red).ignoresSafeArea()
                Text("Hello, world!")
                    .padding()
            }
            .navigationTitle("Main menu")
        }
        .edgesIgnoringSafeArea(.top)
    }
}

Simulator screenshoot

如何让它悬停在space上方?

在你的视图中试试这个 init():

 init() {
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = .black
    UINavigationBar.appearance().standardAppearance = appearance
    UINavigationBar.appearance().scrollEdgeAppearance = appearance 
    }