1
我有下面的代碼:如何在鍵盤解散時調整Webview的大小?
- (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];
}
此代碼作品完美,我有唯一的問題是,當我取消鍵盤它顯示了網頁視圖只是它在哪裏,而不是調整回其正常的位置。與textview高度對齊。
的的WebView屬性是_chatConversation
,你可以像
在這裏,看到的是對數值
當時,會顯示聊天窗口鍵盤被關閉:屏幕(屏幕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 2014-09-30 14:11:59
當鍵盤被解散時,高度不是0,而是您提到它的512. – eddwinpaz 2014-09-30 14:59:06
我已更新我的帖子。 – eddwinpaz 2014-09-30 17:32:21