У меня есть следующий код:Как изменить размер веб-представления при отключении клавиатуры?
- (void)messageComposerFrameDidChange:(CGRect)frame withAnimationDuration:(float)duration {
self.webViewBottomConstraint.constant = _keyboardFrame.size.height-15 + frame.size.height;
UIScrollView *scrollView = self.chatConversation.scrollView;
CGRect rect = CGRectMake(0, scrollView.contentSize.height, scrollView.contentSize.width, 1);
[scrollView scrollRectToVisible:rect animated:YES];
NSInteger height = [[_chatConversation stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];
NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height];
[_chatConversation stringByEvaluatingJavaScriptFromString:javascript];
}
Этот код работает отлично, единственная проблема, я имею в том, что, когда я закрыть клавиатуру он показывает Webview только там, где это было вместо изменения размера его обратно в его нормальное положение. Совместим с высотой текста.
WebView Собственность _chatConversation
, как вы можете видеть на изображении
Вот Записывать значения
Когда клавиатура закрыта, когда чат для Windows показано: (экран 1)
2014-09-30 10:57:52.391 mobile-app[737:260398] +-------------------------------------------------+
2014-09-30 10:57:52.392 mobile-app[737:260398] Keyboard Frame: **0.000000**
2014-09-30 10:57:52.392 mobile-app[737:260398] Frame Position Y Position: 512.500000
2014-09-30 10:57:52.393 mobile-app[737:260398] Chat Conversation Height: 401.000000
2014-09-30 10:57:52.393 mobile-app[737:260398] Chat Conversation Y Position: 64.000000
2014-09-30 10:57:52.393 mobile-app[737:260398] +-------------------------------------------------+
Когда пользователь набирает сообщение (Экран 2)
2014-09-30 10:58:48.265 mobile-app[737:260398] +-------------------------------------------------+
2014-09-30 10:58:48.266 mobile-app[737:260398] Keyboard Frame: **253.000000**
2014-09-30 10:58:48.266 mobile-app[737:260398] Frame Position Y Position: 259.500000
2014-09-30 10:58:48.267 mobile-app[737:260398] Chat Conversation Height: 463.500000
2014-09-30 10:58:48.267 mobile-app[737:260398] Chat Conversation Y Position: 64.000000
2014-09-30 10:58:48.267 mobile-app[737:260398] +-------------------------------------------------+
Когда пользователь нажимает назад, чтобы закрыть клавиатуру (экран 3)
2014-09-30 10:59:15.098 mobile-app[737:260398] +-------------------------------------------------+
2014-09-30 10:59:15.098 mobile-app[737:260398] Keyboard Frame: **253.000000**
2014-09-30 10:59:15.098 mobile-app[737:260398] Frame Position Y Position: 512.500000
2014-09-30 10:59:15.099 mobile-app[737:260398] Chat Conversation Height: 210.500000
2014-09-30 10:59:15.099 mobile-app[737:260398] Chat Conversation Y Position: 64.000000
2014-09-30 10:59:15.099 mobile-app[737:260398] +-------------------------------------------------+
Если вы видите экран 3 и журнал, клавиатура Рама его 253 вместо 0,0
да. Keyboardframe равен 0. Здесь находится журнал http://pastie.org/9607414 изменений размера, когда он показывает клавиатуру и отклоняет ее. – eddwinpaz
Когда клавиатура отклоняется, высота не равна 0, как вы говорите, вместо ее 512. – eddwinpaz
Я обновил сообщение. – eddwinpaz