From 1c40df43e9ca23173a44ae77f0f83918f4a2d44a Mon Sep 17 00:00:00 2001 From: Jason Ibrahim Date: Sat, 15 Sep 2018 16:20:42 -0700 Subject: [PATCH 1/2] automatically scroll to the bottom of scroll content view when keyboard is revealed --- MessageViewController/MessageViewController.swift | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/MessageViewController/MessageViewController.swift b/MessageViewController/MessageViewController.swift index 30b4d98..06c3ee3 100644 --- a/MessageViewController/MessageViewController.swift +++ b/MessageViewController/MessageViewController.swift @@ -86,6 +86,7 @@ open class MessageViewController: UIViewController, MessageAutocompleteControlle internal var scrollView: UIScrollView? internal var keyboardHeight: CGFloat = 0 internal var isMessageViewHidden = false + internal var scrollsToBottomOnKeyboardReveal = true internal func commonInit() { messageView.delegate = self @@ -182,16 +183,21 @@ open class MessageViewController: UIViewController, MessageAutocompleteControlle let scrollViewHeight = scrollView.bounds.height let contentHeight = scrollView.contentSize.height - let inset = scrollView.util_adjustedContentInset + let topInset = scrollView.util_adjustedContentInset.top let bottomSafeInset = self.view.util_safeAreaInsets.bottom - let newOffset = max( + var newOffset = max( min( - contentHeight - scrollViewHeight + inset.bottom, + contentHeight - scrollViewHeight, contentOffset.y + self.keyboardHeight - previousKeyboardHeight - bottomSafeInset ), - -inset.top + -topInset ) + + if self.scrollsToBottomOnKeyboardReveal && contentHeight > scrollViewHeight { + newOffset = contentHeight - scrollViewHeight + } + scrollView.contentOffset = CGPoint(x: contentOffset.x, y: newOffset) } } From 007179424b25fc3d943c8a792aa32b99beb447b2 Mon Sep 17 00:00:00 2001 From: Jason Ibrahim Date: Tue, 2 Oct 2018 19:31:44 +0300 Subject: [PATCH 2/2] change default behavior for keyboard reveal to not reveal --- MessageViewController/MessageViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MessageViewController/MessageViewController.swift b/MessageViewController/MessageViewController.swift index 06c3ee3..b41e238 100644 --- a/MessageViewController/MessageViewController.swift +++ b/MessageViewController/MessageViewController.swift @@ -86,7 +86,7 @@ open class MessageViewController: UIViewController, MessageAutocompleteControlle internal var scrollView: UIScrollView? internal var keyboardHeight: CGFloat = 0 internal var isMessageViewHidden = false - internal var scrollsToBottomOnKeyboardReveal = true + internal var scrollsToBottomOnKeyboardReveal = false internal func commonInit() { messageView.delegate = self