2009-09-07 9 views
0

J'essaie d'ajouter une broche (MKAnnotation et MKAnnotationView) à mon MKMapView et permets à l'utilisateur de le faire glisser.MKAnnotationView dans les états planant et épinglé

Je voudrais aussi faire glisser la broche animée et interactive comme l'application Map de l'iPhone.

Ma question est comment puis-je changer l'état de MKAnnoationView afin qu'il plane sur la carte (de sorte que la broche n'est pas réellement à l'intérieur de la carte)?

Je ne suis pas sûr à 100% comment faire cela. À l'heure actuelle, mon collègue a trouvé une image survolée qu'il échange avec MKAnnotationView par défaut, mais cela signifie que je ne peux pas animer facilement entre les deux.

Répondre

0

Vous ne savez pas exactement ce que vous voulez faire, mais j'ai utilisé l'exemple d'Apple dans le Guide de programmation de l'application iPhone (Gestion des événements dans une vue d'annotation) pour implémenter la broche déplaçable.

Il a un code partiel mais cela peut vous suffire pour le comprendre. Fondamentalement, vous devez sous-classer MKAnnnotation et MKPinAnnotationView et dans votre classe CustomAnnotationView vous devez implémenter des méthodes déléguées pour gérer les événements tactiles, comme indiqué dans l'exemple d'Apple.

Il y avait un peu de remplissage ou de modification nécessaire car l'extrait de code n'était pas complet, mais j'ai reproduit exactement le comportement de l'épingle sur l'application iPhone Map d'Apple (sauf que je n'ai pas implémenté le bon bouton) .

En lui, la broche semble planer. Donc, je soupçonne que vous n'avez pas besoin de l'image que vous avez mentionnée.

Je présume également qu'en fournissant une propriété BOOL, vous pouvez rendre la broche glissable ou "fixée" par programmation.

Est-ce que cela aide?

Questions connexes