Я пытаюсь добавить жесты (коснитесь, проведите пальцем и т. Д. c) к представлению карты Mapkit в ContentView.swift, но безрезультатно. Я начал с googlemaps, а затем попробовал Mapkit. Есть два способа добавления жестов в представление.
- Добавление жестов в mapView следующим образом:
import SwiftUI
struct ContentView: View {
var body: some View {
MapView()
.onTapGesture(count: 2) {
print("Double tapped!")
}
.edgesIgnoringSafeArea(.all)
}
Добавьте жесты в представление MapView следующим образом:
struct MapView: UIViewRepresentable {
func makeUIView(context: Context) -> MKMapView {
let mapView = MKMapView()
mapView.delegate = context.coordinator
let tap = UITapGestureRecognizer(target: context.coordinator, action: #selector(Coordinator.doubleTapped))
tap.numberOfTapsRequired = 2
mapView.addGestureRecognizer(tap)
return mapView
}
func updateUIView(_ view: MKMapView, context: Context) {
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, MKMapViewDelegate {
var parent: MapView
init(_ parent: MapView) {
self.parent = parent
}
@objc func doubleTapped() {
print("Double Tapped...")
}
}
}
Кажется, что ни один из этих методов не работает. Для меня предпочтительнее путь № 1, но я попробовал альтернативный способ, как в № 2. Есть идеи, что я делаю не так? Я использую Xcode 11.4 (11E146). Спасибо!