Как добавить жесты в MapView в SwiftUI - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь добавить жесты (коснитесь, проведите пальцем и т. Д. c) к представлению карты Mapkit в ContentView.swift, но безрезультатно. Я начал с googlemaps, а затем попробовал Mapkit. Есть два способа добавления жестов в представление.

  1. Добавление жестов в 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). Спасибо!

...