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