2010-05-07 7 views
5

Dans l'application iPod de l'iPhone, il y a un UIBarButtonItem dans la barre d'outils supérieure droite qui fait basculer entre les listes de chansons et de pistes de l'album. Lorsque vous sélectionnez le bouton, le bouton lui-même fait une animation flip.Comment faire une animation UIBarButtonItem?

Est-il possible de le faire avec:

 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[UIView beginAnimations:nil context:context]; 

[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES]; 

Ai-je besoin de faire un UIBarButtonItem avec initWithCustomView contre initWithImage pour y parvenir?

Répondre

8

L'UIBarButtonItem n'est pas un enfant de toute classe UIView, donc ne peut pas être animé. De telles animations (comme si Apple's Maps ou iPod) sont, probablement, des API privées. Toutefois, une solution de contournement consiste à créer un objet UIBarButtonItem à l'aide de initWithCustomView, puis à animer le composant dans cette vue. Cependant, cela peut être assez fastidieux - vous devrez fournir vos propres graphiques de bordure pour le bouton.

Hope this utile, Paul

2

Je l'ai fait quelque chose de similaire. J'ai un UIBarButtonItem qui retourne horizontalement quand un champ de texte gagne le focus. Pour ce faire, j'ai utilisé un bouton avec un UIView personnalisé à l'intérieur duquel j'ai mis une barre d'outils transparente contenant mon élément de bouton de la barre fait.

Pour inverser les boutons, j'utilise les méthodes transitionFromView:toView:options:completion: avec l'ancienne et la nouvelle barre d'outils comme vue de et vers.

C'est un peu frais, mais vous pouvez vous en tenir aux boutons de la barre par défaut Apple.

+0

+ 1 c'est une façon cool de rester l'OS l'n'f - je l'aime –

Questions connexes