J'essaie de personnaliser les annotations sur la carte et, au lieu des repères, je veux que les annotations ressemblent à l'indicateur d'emplacement actuel. Comment je ferais ça? Tout conseil serait bon!
Réponses:
1 pour la réponse № 1En général, vous pouvez utiliser un objet d'annotation personnalisé qui étend MKPointAnnotation. Mais si vous avez juste besoin de changer d'image pin, vous pouvez éviter les sous-classes et implémenter cette méthode.
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
let identifier = "MyPin"
if annotation.isKindOfClass(MKUserLocation) {
return nil
}
var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)
if let annotationView = annotationView {
annotationView.annotation = annotation
} else {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
annotationView.image = UIImage(named: "myPinImage")
}
return annotationView
}
Il vous suffit donc de trouver la bonne image et de remplacer les épingles par celle-ci. Mais si vous souhaitez suivre les modifications possibles de l’image par défaut currentLocation, vous pouvez réutiliser la vue par défaut.
let annotationView = mapView.viewForAnnotation(mapView.userLocation());