Я вызываю метод -(void)setEditing:(BOOL)editing animated:(BOOL)animated
в своем коде для обмена двумя кнопками на RHS моей панели навигации.
-(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;
}
}
Где self.addItemButton
и self.addToOrderButton
- ivars, содержащие предопределенные UIBarButtonItems, установите в awakefromNib
.
Кнопка в self.addToOrderButton
значительно шире, чем та, что находится в self.addItemButton
, поэтому Id, как и их, будет тонкой анимацией между двумя ширинами, когда запускается изменение состояния редактирования (путем нажатия стандартного editButtonItem
на LHS навигации.
Если я окружаю весь if:else
с помощью [UIView beginAnimations:nil context:NULL];
и [UIView commitAnimations];
, смена кнопки делает анимированный, но с их позициями, летающими на место отдельно от верхнего левого угла, а не на месте и просто анимацией их ширины.
Как я одушевляю элементы панели навигации, чтобы каждый отдельный (кнопка RHS, заголовок) оживлял более подходящие, сдержанные способы?