我的应用程序由中的几个不同选项卡上的几个视图组成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")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我使用分组列表样式使样式更改更明显,但默认样式相同。
是否有SwiftUI API可以访问状态栏样式?还是可能有其他解决方法?
根据Apple的文档,edgesIgnoringSafeArea(_:)
应将其应用于TabView
:
https://developer.apple.com/documentation/swiftui/vsplitview/3288813-edgesignoringsafearea
将视图扩展到指定边缘的安全区域之外。
struct ContentView: View {
var body: some View {
TabView {
NavView()
}.edgesIgnoringSafeArea(.top)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
255 次 |
最近记录: |