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