0

我设法通过注释和弹出窗口中的标题使用个性化图像进行注释。我的问题:是否可以在注释下方添加标题?预先感谢您的反馈。

视图控制器

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
        let pageDecouverte = listeDesPoints[view.tag]
        selectedLieuDecouverte = pageDecouverte
        self.performSegue(withIdentifier: "showPageDecouverte", sender: nil)
    }
    
    
    func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?
    {
        if !(annotation is MKPointAnnotation) {
            return nil
        }
        
        let annotationIdentifier = "location"
        var annotationView = carteRegion.dequeueReusableAnnotationView(withIdentifier: (annotationIdentifier))
        
        
        if annotationView == nil {
            annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
            annotationView!.canShowCallout = true
        }
        else {
            annotationView!.annotation = annotation
        }
        
        if annotation is MyAnnotation {
            let imageName = (annotation as! MyAnnotation).imageName
            annotationView?.tag = (annotation as! MyAnnotation).tag
            if imageName != nil{
                let interetImage = UIImage(named: imageName!)
                annotationView!.image = interetImage
                
            }
            
        }
        annotationView?.clusteringIdentifier = annotationIdentifier
        annotationView?.canShowCallout = true
        annotationView?.rightCalloutAccessoryView = UIButton(type:.detailDisclosure)
        return annotationView
        
        
    }
}

对于我的MyAnnotation

import UIKit
import MapKit
import Parse


class MyAnnotation: MKPointAnnotation {
    
    
    var imageName: String?
    var annotationTitle: String?
    var tag : Int = 0
    var pageDecouverte:PFPageDecouverte?
}

在此处输入图像描述

4

1 回答 1

0

而不是MKAnnotationView使用子类MKMarkerAnnotationView来呈现标记下方的标题。

同样MyAnnotation重命名annotationTitletitle,然后MKMarkerAnnotationView自动知道要渲染什么。

请参阅协议的定义MKAnnotation以了解原因。

于 2020-10-03T10:54:17.517 回答