• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[SwiftUI]二、实用控件-(9)在SwiftUI中使用MapKit里的地图视图

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap