2017-10-07 11 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 
    } 
} 
関連する問題