Как мне обнаружить касание и удержание на булавке в MKMapView?

Название говорит само за себя. Я пытаюсь обнаружить нажатие на булавку в MKMapView и я даже не знаю с чего начать. Это не UIView, поэтому я не могу добавить распознаватель жестов и не могу найти UIView в MKPlaceMark добавить это.

1 ответ

Ваш вопрос не очень понятен, но вы можете сделать так:

    import UIKit
    import MapKit

    protocol HandleMapSearch: class {
        func dropPinZoomIn(placemark:MKPlacemark)
    }

    class ViewController: UIViewController {

       func getDirections(){

           // Here you can put anythings like:

        guard let selectedPin = selectedPin else { return }
        let mapItem = MKMapItem(placemark: selectedPin)
        let launchOptions = [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving]
        mapItem.openInMapsWithLaunchOptions(launchOptions)
    }
    }

extension ViewController : MKMapViewDelegate {

    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView?{       

        guard !(annotation is MKUserLocation) else { return nil }
        let reuseId = "pin"
        var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
        if pinView == nil {
            pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
        }
        pinView?.pinTintColor = UIColor.orangeColor()    // The pin's color
        pinView?.canShowCallout = true    // To set dialogue bubbles of the pin.

        let smallSquare = CGSize(width: 30, height: 30)
        let button = UIButton(frame: CGRect(origin: CGPointZero, size: smallSquare))       // To initialize the button in the dialogue bubbles of the pin.

        button.addTarget(self, action: #selector(ViewController.getDirections), forControlEvents: .TouchUpInside)    // To set and initialize the button.
        pinView?.leftCalloutAccessoryView = button

        return pinView
    }
}

Вы можете получить более подробную информацию на веб-сайте Thorn

Другие вопросы по тегам