Restrição de Autolayout - Teclado
Estou preso tentando animar uma exibição de tabela sem problemas que tem uma restrição de autolayout. Eu tenho uma referência à restrição "keyboardHeight" no meu .h e vinculei isso ao IB. Tudo o que quero fazer é animar a exibição da tabela com o teclado quando ele aparecer. Aqui está o meu código:
- (void)keyboardWillShow:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
NSTimeInterval animationDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardFrame = [kbFrame CGRectValue];
CGFloat height = keyboardFrame.size.height;
[UIView animateWithDuration:animationDuration animations:^{
self.keyboardHeight.constant = -height;
[self.view setNeedsLayout];
}];
}
A coisa é que o bloco de animação é instantâneo e vejo espaço em branco aparecer antes do teclado terminar sua animação. Então basicamente eu vejo o fundo branco da vista enquanto o teclado está animando. Não consigo fazer a animação durar enquanto o teclado estiver animando.
Estou me aproximando disso da maneira errada? Desde já, obrigado!