Swiftui 将选项卡视图放置在NavigationView中可使标题透明

Swiftui 将选项卡视图放置在NavigationView中可使标题透明,swiftui,swiftui-navigationview,swiftui-tabview,Swiftui,Swiftui Navigationview,Swiftui Tabview,在我添加导航视图之前,TabView对我来说工作得很好。 这是一种正常的行为 当我在选项卡视图周围添加NavigationView时,出现了一个问题——当滚动时,我在黑色矩形前面看到“test” 我试着设置 UINavigationBar.appearance().backgroundColor 对一些不透明的颜色,但它只是在所有东西前面画另一个矩形 在TabView周围使用NavigationView时,有没有办法使黑色矩形不透明 哦,还有一件事。。我试着搬走了 .edgesIgnoring

在我添加导航视图之前,TabView对我来说工作得很好。 这是一种正常的行为

当我在选项卡视图周围添加NavigationView时,出现了一个问题——当滚动时,我在黑色矩形前面看到“test”

我试着设置

UINavigationBar.appearance().backgroundColor

对一些不透明的颜色,但它只是在所有东西前面画另一个矩形

在TabView周围使用NavigationView时,有没有办法使黑色矩形不透明

哦,还有一件事。。我试着搬走了

.edgesIgnoringSafeArea(.top)

这解决了问题,但顶部区域出现了巨大的空白:

import SwiftUI

struct ContentView: View {
    
    let tabData = [
        TabItem(menuTitle: Text("item 1"), menuImage: Image(systemName: "heart.fill"), bodyHeadline: Text("Postnatal recovery"), bodyMeta: Text(""), tag: 1),
        TabItem(menuTitle: Text("item 2"), menuImage: Image(systemName: "heart.fill"), bodyHeadline: Text("Weight loss"), bodyMeta: Text(""), tag: 2),
    ]
    
    var body: some View {
        NavigationView {
            ZStack {
                TabView {
                    ForEach(tabData) { tabItem in
                        VStack {
                            VStack {
                                Rectangle()
                            }
                            .frame(height: 90)
                            .background(Color.yellow)
                            
                            ScrollView {
                                LazyVStack(spacing: 0) {
                                    ForEach(0...100, id:\.self) { val in
                                        ZStack {
                                            Text("test")
                                                .font(.system(size: 128))
                                        } // ZStack
                                        .background(Color.white)
                                    } // ForEach
                                }
                            }
                            .background(Color.blue)
                            
                        }
                        
                        .tabItem {
                            tabItem.menuImage
                            tabItem.menuTitle
                                .foregroundColor(Color.red)
                        }
                        .edgesIgnoringSafeArea(.top)
                    } // ForEach
                    
                } // TabView
            } // ZStack
        } // NavigationView
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

struct TabItem: Identifiable {
    var id = UUID()
    var menuTitle: Text
    var menuImage: Image
    var bodyHeadline: Text
    var bodyMeta: Text
    var tag: Int
}
添加

.navigationBarHidden(true).navigationBarTitle(“”)

使一切顺利进行

添加

.navigationBarHidden(true).navigationBarTitle(“”)

使一切顺利进行