我的应用程序由几个视图组成,分布在不同的选项卡中,这些选项卡位于TabView
内。这些视图创建自己的NavigationView
。不幸的是,TabView
的存在使它们的颜色和透明度与应用程序的状态栏产生冲突,导致状态栏与导航栏不再一致。
使用以下代码可以轻松在示例应用程序中复现此问题。
struct ContentView: View {
var body: some View {
TabView {
NavView()
}
}
}
struct NavView: View {
var body: some View {
NavigationView {
List {
ForEach(0..<10, id: \.self) { _ in
Section(header: Text("Foo")) {
Text("Bar")
}
}
}
.listStyle(GroupedListStyle())
.navigationBarTitle("Foobar")
}
}
}
我正在使用分组列表样式来使样式更明显,但它与默认样式相同。
是否有SwiftUI API可以访问状态栏样式?或者可能有其他解决方法?
TabView
上使用了.edgesIgnoringSafeArea(.top)
,这样NavigationView
或其他任何东西的颜色都会被显示出来。此外,我认为NavigationView
再次获得了正确的插图,因为它不会破坏我的导航栏标题顶部偏移。 - gujci