我正在开发一个同时使用 TabView 和 NavigationView 的 SwiftUI 应用程序。其中一个视图负责呈现来自 MapKit 的地图,它旨在占用所有可用空间。我希望它扩展到 TabBar 和 NavigationBar 之外,这样我就可以通过栏的标准半透明材料看到地图的内容,就像 Apple Store 应用程序的截图一样:
我尝试在地图上使用 .ignoresSafeArea() 修饰符,但是这些栏根本没有背景材料,只有按钮和导航标题可见,如下所示:
这似乎不是我的应用程序结构特有的问题 - 我尝试用这两个栏制作一个新的独立视图,但仍然得到相同的结果。这是该示例视图的代码:
import MapKit
import SwiftUI
struct SwiftUIView: View {
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 50, longitude: 20),
span: MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)
)
var body: some View {
TabView {
NavigationView {
Map(coordinateRegion: $region)
.ignoresSafeArea()
.navigationTitle("Map")
}
.tabItem {
Label("Map", systemImage: "map")
}
}
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}
是我遗漏了什么重要的东西还是地图组件中存在错误?