2016-06-22 4 views
0

Я использую MKPinAnnotationView внутри своего приложения.Show Annotation Title and SubTitle in Custom MKPinAnnotationView

Я устанавливаю MapView объект в качестве делегата, и с помощью этого кода для настройки моих AnnotationView

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

     if annotation is MKUserLocation { 
      //return nil so map view draws "blue dot" for standard user location 
      return nil 
     } 

     let reuseId = "pin" 

     var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView 
     if pinView == nil { 
      pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
      // pinView!.canShowCallout = true 
      pinView!.image = UIImage(named:"store.jpg") 
      pinView!.animatesDrop = true 
      pinView!.pinTintColor = UIColor.darkGrayColor() 
     } 
     else { 
      pinView!.annotation = annotation 
     } 

     return pinView 
    } 

я получаю пользовательские AnnotationView как я required.However, я пропускаю особенность title и subtitle из MKPointAnnotation.

Я хочу видеть название и субтитры для серых точек. enter image description here

ответ

0

Я перекрывая один FUNC

func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) { 
     mapView.deselectAnnotation(view.annotation, animated: true) 
    } 

Я прокомментировал эту функцию, и получил название и субтитры.

Обновленный код

/* 
func mapView(mapView: MKMapView, didSelectAnnotationView view: MKAnnotationView) { 
mapView.deselectAnnotation(view.annotation, animated: true) 
} 
*/ 
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 

    if annotation is MKUserLocation { 
     //return nil so map view draws "blue dot" for standard user location 
     return nil 
    } 

    let reuseId = "pin" 
    let pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
    pinView.canShowCallout = true 
    pinView.animatesDrop = true 
    pinView.pinTintColor = UIColor.darkGrayColor() 
    pinView.draggable = true 
    pinView.accessibilityLabel = "hello" 
    let btn = UIButton(type: .DetailDisclosure) 
    pinView.rightCalloutAccessoryView = btn 
    return pinView 
}