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

相关课程:http://hdjc8.com/hdjc/swiftUI/

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)
    }
}

查看运行结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李发展

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值