Вы можете использовать любые представления, которые ранее поддерживались в UIKit (или в данном случае MapKit) в SwiftUI, вам просто нужно предоставить класс моста, соответствующий UIViewRepresentable
.
Я рекомендую взглянуть на предоставленные Apple учебники по адресу: https://developer.apple.com/tutorials/swiftui/tutorials
Вот пример класса, который делает то, что вы хотите:
import SwiftUI
import MapKit
struct MapView: UIViewRepresentable {
var coordinate: CLLocationCoordinate2D
func makeUIView(context: Context) -> MKMapView {
MKMapView(frame: .zero)
}
func updateUIView(_ view: MKMapView, context: Context) {
let span = MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02)
let region = MKCoordinateRegion(center: coordinate, span: span)
view.setRegion(region, animated: true)
}
}
Тогда, как вы видите выше, вы можете заменить Text("MAP")
на MapView(coordinate: center-coordinate-here)