У меня есть настраиваемая кнопка возврата в моей навигационной панели. Когда появляется клавиша, я просто заменю кнопку «Назад» кнопкой закрытия. Когда клавиатура закрыта, я восстанавливаю кнопку «Назад».Нежелательная анимация на панели навигационной панели
Вот функция я использую, чтобы установить левую кнопку навигации:
-(UIBarButtonItem*)configureLeftButtonWithImageName:(NSString*)imageName
target:(id)target
action:(SEL)action
{
UIButton *accountButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *buttImage = [UIImage imageNamed:imageName];
[accountButton setImage:buttImage forState:UIControlStateNormal];
float padding = 4;
accountButton.imageEdgeInsets = UIEdgeInsetsMake(padding, 0, padding, 2*padding);
float buttH = kNavigationButtonHeight + 2*padding;
float buttW = buttH;
if(buttImage)
{
buttW = buttH * buttImage.size.width/buttImage.size.height;
}
accountButton.bounds = CGRectMake(padding, padding, buttW, buttH);
[accountButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:accountButton];
[self.navigationItem setLeftBarButtonItem:barButtonItem];
return barButtonItem;
}
А вот где я включаю:
-(void)kbDidAppear
{
[self configureLeftButtonWithImageName:@"quit" target:self action:@selector(hideKb:)];
}
-(void)kbDidDisappear
{
[self configureLeftButtonWithImageName:@"back" target:self action:@selector(navigationBack:)];
}
Но когда кнопка назад заменяется на кнопку бросить курить, Проигрывается нежелательная анимация:
Кнопка quit была смещена в верхний левый угол панели навигации, а затем анимированная позиция до нормальных значений ...
При переключении с кнопки «Выход» на кнопку «Назад» проблема не появляется!