我正在开发一个使用TabView和NavigationView的SwiftUI应用程序。其中一个视图负责展示来自MapKit的地图,并且应该占用所有可用空间。我希望它可以延伸到TabBar和NavigationBar之外,这样我就可以通过标准半透明材料查看地图内容,就像Apple Store应用程序中的屏幕截图一样:
我尝试在Map上使用.ignoresSafeArea()修饰符,但是然后栏没有任何背景材料,只有按钮和导航标题可见,就像这样:
这似乎不是我的应用程序结构特定的问题 - 我尝试创建一个新的独立视图与那两个栏,仍然得到相同的结果。以下是该示例视图的代码:
有什么重要的东西我错过了吗?还是地图组件有 bug 吗?
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()
}
}
有什么重要的东西我错过了吗?还是地图组件有 bug 吗?