为有牺牲多壮志,敢教日月换新天。

[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
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

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

 

posted @ 2020-02-10 21:32  为敢技术  阅读(396)  评论(0)    收藏  举报