2009-11-13 5 views
1

J'ai finalement réussi à assembler une légende personnalisée UIView qui s'affiche lorsque MKAnnotationView est tapé. Je l'ai fait en remplaçantAnimation d'une légende personnalisée pour MKAnnotationView dans MKMapView avec effet "pop-in"

- (void)setSelected:(BOOL)selected animated:(BOOL)animated; 

dans ma sous-classe personnalisée MKAnnotationView. Remarque: j'ai empêché l'affichage de la légende principale en définissant la propriété canShowCallout sur NO. Je voudrais essayer de répliquer l'animation que la légende standard utilise ... Il semble faire un effet de bulle - aller un peu plus grand que prévu, puis revenir à sa taille normale. Jusqu'à présent, je semble être incapable de comprendre comment produire une animation similaire avec l'animation de base. Quelqu'un at-il des suggestions ou des pointeurs?

Merci d'avance!

Répondre

1

J'ai trouvé une solution décente pour celui-ci. Le ftutils library fournit une animation pop. Il est vraiment facile d'appeler aussi:

#import "FTAnimation.h" 

[self.viewToAnimate popIn:.4 delegate:nil]; 
2

J'ai développé une bulle de légende personnalisée qui est presque identique à la bulle du système callout, mais donne plus de flexibilité sur la hauteur et le contenu. Voir mon poste sur le Asynchrony Solutions blog pour le code d'exemple. Il détaille également les étapes à suivre pour animer la légende à l'aide de Core Animation afin qu'elle apparaisse hors de l'épingle de la carte. Il s'agit d'une transformation affine qui redimensionne et traduit la vue.

Questions connexes