2017-10-07 60 views
0

如何在地圖中點擊或點擊註釋標題。比如我有代碼:如何選擇註釋標題?

@IBOutlet var Map: MKMapView! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    Map.delegate = self 
    let location = CLLocationCoordinate2DMake(lat!, lon!) 
    let span = MKCoordinateSpanMake(0.1, 0.1) 
    let region = MKCoordinateRegion(center: location, span: span) 
    Map.setRegion(region, animated: true) 
    let annotation = MKPointAnnotation() 
    annotation.coordinate = location 
    annotation.title = "Title" 
    Map.addAnnotation(annotation) 

} 

我嘗試使用UITapGestureRecognizermapView(_ mapView: MKMapView, didSelect view: MKAnnotationView),但它不工作。也許有人有任何想法

回答

0

實施委託方法。

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 
    if annotation is MKUserLocation { 
     return nil 
    } 

    let reuseId = "Pin" 
    var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) 
    if pinView == nil { 
     pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
     pinView?.canShowCallout = true 

     let rightButton: AnyObject! = UIButton(type: UIButtonType.detailDisclosure) 
     pinView?.rightCalloutAccessoryView = rightButton as? UIView 
    } 
    else { 
     pinView?.annotation = annotation 
    } 

    return pinView 
} 

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 
    print(#function) 
    if control == view.rightCalloutAccessoryView { 
     // Do something 
    } 
}