SwiftUI从入门到实战第2章第9节:MapView

Easter79
• 阅读 704

SwiftUI并没有包含MapView,这里通过遵循UIViewRepresentable协议,在SwiftUI中集成UIKit中的WKMapView。

示例代码:

import SwiftUI
import MapKit    //首先导入需要使用到的MapKit框架。

//使当前的结构体遵循UIViewRepresentable协议。使用该协议的实例,可以在SwiftUI中创建和管理UIView对象。
struct ContentView : UIViewRepresentable {
    
    //实现协议里的makeUIView方法,用来初始化并返回一个MKMapView地图视图对象。
    func makeUIView(context: UIViewRepresentableContext<ContentView>) -> MKMapView {
        return MKMapView()
    }
    
    //接着实现协议里的updatedUIView方法,用来设置地图视图需要加载的地理坐标等参数。
    func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<ContentView>) {

        //设置地图视图显示用户所在的地理位置,并设置地图类型为卫星模式。
        uiView.showsUserLocation = true
        uiView.mapType = MKMapType.satellite
        
        //初始化一个二维坐标,并设置经纬度的数值。
        let coordinate2D = CLLocationCoordinate2D(latitude: 39.915352, longitude: 116.397105)

        //设置地图视图的缩放比例为0.02。
        let zoomLevel = 0.02

        //初始化一个坐标区域对象,作为地图视图所要显示的地理区域。
        let region = MKCoordinateRegion(center: coordinate2D, span: MKCoordinateSpan(latitudeDelta: zoomLevel, longitudeDelta: zoomLevel))
        //使地图视图显示自定义的地理区域
        uiView.setRegion(uiView.regionThatFits(region), animated: true)
    }
}

查看运行结果:

SwiftUI从入门到实战第2章第9节:MapView

点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
3年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Easter79 Easter79
3年前
SwiftUI从入门到实战第2章第7节:TabView
相关课程:http://hdjc8.com/hdjc/swiftUI/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fhdjc8.com%2Fhdjc%2FswiftUI%2F)TabView相当于UIKit中的UITabBarController,用于实现标签视图集。标签视图位
Easter79 Easter79
3年前
SwiftUI 编程指南
作者:CoderAFI, iOS开发者Session:https://developer.apple.com/videos/play/wwdc2020/10040/前言时光荏苒,SwiftUI技术已经推出一年,从WWDC2020来看,SwiftUI团队付出了空前的努力,使得SwiftUI无论是
Easter79 Easter79
3年前
SwiftUI从入门到实战第2章第3节:Slider的使用
相关课程:http://hdjc8.com/hdjc/swiftUI/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fhdjc8.com%2Fhdjc%2FswiftUI%2F)Slider相当于UIKit中的UISlider,通过移动滑杆实现指定区域和间隔的数值的选择。Slid
Easter79 Easter79
3年前
SwiftUI直通车系列(1)—— 视图的布局与组织
SwiftUI直通车系列(1)——视图的布局与组织一、引言    SwiftUI提供了一种更快、更高效也更简单的页面开发方式。我们知道相对于ObjectiveC,Swift语言本身就更加高效简洁,SwiftUI采用了结构化的布局方式,使得应用的界面开发更加直观快速。本系列博客,
Easter79 Easter79
3年前
SwiftUI从入门到实战第2章第1节:PickerDate
相关课程:http://hdjc8.com/hdjc/swiftUI/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fhdjc8.com%2Fhdjc%2FswiftUI%2F)本节演示DatePicker视图的使用,DatePicker和UIKit中的UIDatePicker类似,
Easter79 Easter79
3年前
SwiftUI直通车系列(6)—— 使用动画
SwiftUI直通车系列(6)——使用动画   本系列博客是针对SwiftUI开发框架的快速入门介绍,之前系列博客地址:SwiftUI直通车系列(1)——视图的布局与组织(https://my.oschina.net/u/2340880/blog/4529951)SwiftUI直通车系列
Easter79 Easter79
3年前
SwiftUI从入门到实战第2章第5节:Segment
相关课程:http://hdjc8.com/hdjc/swiftUI/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fhdjc8.com%2Fhdjc%2FswiftUI%2F)Segment分段控件,类似于UIKit中的UISegmentedControl。分段控件提供一栏选项按钮
Easter79 Easter79
3年前
SwiftUI从入门到实战第2章第14节:AngularGradient
相关课程:http://hdjc8.com/hdjc/swiftUI/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fhdjc8.com%2Fhdjc%2FswiftUI%2F)使用AngularGradient绘制角度颜色渐变的背景。本节课演示角度渐变的使用。角度渐变是指从起点到终
融云IM即时通讯 融云IM即时通讯
11个月前
SwiftUI 集成 IMKit
SwiftUI集成IMKit在SwiftUI中,集成IMKit中RCConversationListViewController和RCConversationViewController两页面可能存在以下问题:1、直接在View中使用,两个页面会错位;2、
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k