2

我正在开发一个同时使用 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()
    }
}

是我遗漏了什么重要的东西还是地图组件中存在错误?

4

0 回答 0