0

在此处输入图像描述

我用来创建此导航栏示例的代码:

struct ContentView: View {
    init() {
        let defaultAppearance = UINavigationBarAppearance()
        defaultAppearance.configureWithOpaqueBackground()
        defaultAppearance.backgroundColor = .red

        UINavigationBar.appearance().standardAppearance = defaultAppearance
        UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
    }

    var body: some View {
        ParentView()
    }
}

struct ParentView: View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: DetailView()) {
                    Text("Tap here")
                }
            }
            .navigationBarTitle("", displayMode: .inline)
            .navigationBarHidden(true)
            .edgesIgnoringSafeArea(.all)
        }
    }
}

struct DetailView: View {
    var body: some View {
        VStack {
            Text("Detail View")
        }
        .edgesIgnoringSafeArea(.all)
   }
}

我把 .edgesIgnoringSafeArea(.all) 放在哪里都没关系,它不起作用。还有另一种方法可以告诉导航栏忽略安全区域吗?

如果不是安全区问题,那么我需要让整个导航栏与 UI Hierarchy 中显示的 UINavigationBarContentView 高度相同: 在此处输入图像描述

4

0 回答 0