自動レイアウトの制約があるテーブルビューをスムーズにアニメーション化しようとして立ち往生しています。.h に制約 "keyboardHeight" への参照があり、これを IB にリンクしました。私がしたいのは、テーブルビューがポップアップしたときにキーボードでアニメーション化することだけです。これが私のコードです:
- (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];
}];
}
問題は、アニメーション ブロックが瞬間的であり、キーボードがアニメーションを終了する前に空白が表示されることです。したがって、基本的には、キーボードがアニメーション化されているため、ビューの白い背景が表示されます。キーボードがアニメーションしている限り、アニメーションを持続させることはできません。
私はこれに間違った方法でアプローチしていますか? 前もって感謝します!