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

查看運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章