2016-03-02 3 views
0

У меня есть настраиваемая кнопка возврата в моей навигационной панели. Когда появляется клавиша, я просто заменю кнопку «Назад» кнопкой закрытия. Когда клавиатура закрыта, я восстанавливаю кнопку «Назад».Нежелательная анимация на панели навигационной панели

Вот функция я использую, чтобы установить левую кнопку навигации:

-(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 была смещена в верхний левый угол панели навигации, а затем анимированная позиция до нормальных значений ...

При переключении с кнопки «Выход» на кнопку «Назад» проблема не появляется!

ответ

0

Я только что нашел обходной путь, я был переход от назад кнопка бросить кнопку в UIKeyboardWillShowNotification обратного вызова, если я делаю это в UIKeyboardDidShowNotification обратного вызова, не более странно анимация