Я разрабатываю приложение для чата в ios, и у меня есть собственное табличное представление и UIView с некоторой кнопкой текстового поля внизу. Я хотел бы переместить 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;
}];
Это работает, но вы замечаете, что UIview не перемещается плавно, как в приложении facebook или viber. Поэтому я хотел бы спросить, каков общий подход к этому. Большое тебе спасибо!