私はiosでチャットアプリを開発しています。カスタムテーブルビューとUIViewがあり、下部にテキストフィールドボタンがあります。Textfield を有効にした状態で UIView と Tableview をキーボードで動かしたいです。私はこの観察者を持っています:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardWillShowNotification object:nil];
次に、keyboardWasShown メソッド:
- (void)keyboardWasShown:(NSNotification*)aNotification{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
NSNumber *number = [info objectForKey:UIKeyboardAnimationDurationUserInfoKey];
double duration = [number doubleValue];
[UIView animateWithDuration:duration animations:^{
CGRect frame = textInputView.frame;
if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
{
self.kHeight = kbSize.height;
}
else if(UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
{
self.kHeight = kbSize.width;
}
NSLog(@"keyboard up y =%f",self.kHeight);
frame.origin.y -= self.kHeight;
textInputView.frame = frame;
frame = bubbleTable.frame;
frame.size.height -= self.kHeight;
bubbleTable.frame = frame;
}];
動いているのですが、facebookやviberアプリのようにUIviewがスムーズに動かないことに気づきました。そこで、一般的なアプローチについてお聞きしたいと思います。本当にありがとうございました!