[Swift UI]二、实用控件,9在SwiftUI中使用MapKit里的地图视图
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(let_us_code)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https:////www.cnblogs.com/strengthen/p/12292877.html
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
SwiftUI没有提供地图视图,所以需要借助于MapKit里的地图视图。
1 import SwiftUI 2 //首先倒入需要使用到的地图框架 3 import MapKit 4 5 //使当前的结构体遵循UIViewRepresentable(视图替代)协议, 6 //使用该协议的实例,可以在SwiftUI中创建和管理UIView对象。 7 struct ContentView : UIViewRepresentable 8 { 9 //实现协议里的创建视图makeUIView方法,用来初始化并返回一个MKMapView地图视图对象。 10 func makeUIView(context: UIViewRepresentableContext<ContentView>) -> MKMapView 11 { 12 return MKMapView() 13 } 14 15 //实现协议里的更新视图updateUIView方法,用来设置网页视图需要加载的网址参数。 16 func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<ContentView>) 17 { 18 //设置地图视图显示用户所在的地理位置 19 uiView.showsUserLocation = true 20 //并设置地图类型为卫星模式 21 uiView.mapType = MKMapType.satellite 22 23 //初始化一个二维坐标,并设置经纬度的数值。 24 let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105) 25 //设置地图视图的缩放比例为0.02 26 let zoomLevel = 0.02 27 //初始化一个坐标区域对象,作为地图视图所要显示的地理区域。 28 let region = MKCoordinateRegion(center: coordinate2D, span: MKCoordinateSpan(latitudeDelta: zoomLevel, longitudeDelta: zoomLevel)) 29 30 //使地图视图显示自定义的地理区域 31 uiView.setRegion(uiView.regionThatFits(region), animated: true) 32 } 33 } 34 35 #if DEBUG 36 struct ContentView_Previews : PreviewProvider { 37 38 static var previews: some View { 39 ContentView() 40 } 41 } 42 #endif