2011-02-03 2 views
3

J'ai utilisé un outil de reconnaissance de gestes et le boundingRect pour une surimpression donnée pour déterminer quand un utilisateur tape dessus. Cependant, je voudrais maintenant faire apparaître une légende sur la zone de superposition que l'utilisateur tape, tout comme pour les annotations. Dois-je créer les superpositions en tant qu'annotations afin d'accomplir ceci? Merci.Comment faire apparaître une légende pour la région MKOverlay?

Répondre

2

Les superpositions sont également des objets d'annotation si vous le souhaitez.

De l'Location Awareness Programming Guide:

Le protocole MKOverlay est conforme au protocole de MKAnnotation. Par conséquent, tous les objets de superposition sont également des objets d'annotation et peuvent être traités comme l'un ou les deux dans votre code. Si vous choisissez de traiter un objet de superposition comme les deux, vous êtes responsable de la gestion de cet objet à deux endroits. Si vous souhaitez afficher à la fois une vue de superposition et une vue d'annotation, vous devez implémenter à la fois les méthodes mapView: viewForOverlay: et mapView: viewForAnnotation: dans votre délégué d'application. Cela signifie également que vous devez ajouter et supprimer l'objet des tableaux de superposition et d'annotation de votre carte.

+0

Merci pour le conseil, mais je suis tout à fait perdu dans la façon dont je voudrais créer une superposition pour être une annotation. Pouvez-vous fournir un exemple de code dans cette zone? Les sous-classes de MKAnnotationView ont généralement une UIImage comme variable et dans la méthode initWithAnnotation: reuseIdentifier: il n'y a aucun moyen de spécifier dynamiquement la largeur et la hauteur du cadre à partir de la largeur et de la hauteur du polygone. Merci. – Stunner

+0

L'exemple de code MapCallouts peut-il vous aider? Il montre MKAnnotations avec des légendes personnalisées - http://developer.apple.com/library/ios/#samplecode/MapCallouts/Introduction/Intro.html – petert

+0

pas travailler à partir de moi, je traite MKPolyLine comme MKAnnotation, mais a échoué. Après avoir ajouté addAnnotation: à mapview, ne pas déclencher le rappel - (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id ) annotation – user501836

Questions connexes