在自定义MKPinAnnotationView中显示注释标题和子标题

时间:2016-06-22 10:09:27

标签: ios swift mkmapview mkannotationview mkpointannotation

我在我的应用程序中使用L2=$(echo "$L1" | tr [:upper:] [:lower:])

我将MKPinAnnotationView对象设置为委托,并使用此代码自定义MapView

AnnotationView

我正在按需要获取自定义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 } 的{​​{1}}和title的功能。

我希望看到灰点的标题和副标题。enter image description here

1 个答案:

答案 0 :(得分:1)

我压倒了一个功能

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
}