Comment animer un bouton de changement de UINavigationBar?
Je suis l'appel de la -(void)setEditing:(BOOL)editing animated:(BOOL)animated
méthode dans mon code pour permuter entre les deux boutons sur le membre de droite de ma barre de navigation.
-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
//Toggle ‘+’ and ‘Add To Order’ button.
if( editing ) {
self.navigationItem.rightBarButtonItem = self.addItemButton;
}
else {
self.navigationItem.rightBarButtonItem = self.addToOrderButton;
}
}
Où self.addItemButton
et self.addToOrderButton
sont ivars contenant prédéfinis UIBarButtonItems, le programme d'installation en awakefromNib
.
Le bouton dans self.addToOrderButton
est sensiblement plus large que celui dans self.addItemButton
, je voudrais donc leur être une subtile de l'animation entre les deux largeurs lorsque la modification de l'état d'édition est déclenchée (en appuyant sur un standard editButtonItem
LHS de la navigation.
Si je entourent l'ensemble de la if:else
avec [UIView beginAnimations:nil context:NULL];
et [UIView commitAnimations];
le bouton modifier n'est d'animer, mais avec leurs positions—volant en place individuellement à partir du haut à gauche plutôt qu'à en place et l'animation de leurs largeurs.
Comment j'anime la barre de navigation éléments de façon à ce que chacun de nous (le membre de droite bouton, le titre) animer plus approprié, des moyens de retenue?
Vous devez vous connecter pour publier un commentaire.
Il existe des méthodes que vous pouvez utiliser pour animer la droite et la gauche bouton de la barre d'objets:
...qui va l'animer pour vous. Si vous avez besoin de tout animer (y compris le titre), vous pouvez également utiliser le
setItems:animated:
méthode de votre barre de navigation (la passer dans un tableau des éléments de navigation que vous souhaitez afficher)setItems:animated:
, être conscient qu'il ne peut pas être utilisé sur lenavigationController
'snavigationBar
. Vous obtiendrez giflé avec l'exception suivante:Cannot call setItems:animated: directly on a UINavigationBar managed by a controller.