Revert "[MessageLabel] Change privacy of properties and function to use allow people to use it in their own custom cell"
This reverts commit e902832887cc30c85910e059f58f1cf482a0c028.
[MessageLabel] Change privacy of properties and function to use allow people to use it in their own custom cell
[Update] Make handleGesture open
[Update]
* allow dynamic calculation of avatar size
instead of having the same avatar size per size calculator, allow a subclass to override it so it can provide multiple avatar sizes depending on the message
* make sizing functions overridable by subclasses
* Remove MessageInputBar files and change build settings
* Conditional imports to allow for builds without MessageInputBar
* Update Cardfile
* Specify Version in Cartfile for MessageInputBar
* Remove conditional imports in favor of Carthage for local development
* Additional `import MessageInputBar`
* Remove `MessageInputBar` from Cartfile.private
* Bump MessageInputBar version
* Add Cartfile
* Tweak build settings
* Specify import of MessageInputBar for Carthage
This change provides better handling of keyboard frames. It copes with different values of UIViewController.edgesForExtendedLayout, UIScrollView.contentInsetAdjumentBehavior, view controller containment scenarios and undocked keyboards, and uses cleaner code.
Improvements and fixes in this change:
1. Translates keyboard frame from screen coordinates into view controller coordinates. They aren’t the same thing when containment is involved, or edgesForExtendedLayout does not include .top.
2. Avoids special casing any iPhone models and avoids dealing with safeAreaInsets manually. In iOS 11, UIScrollView may behave differently depending on contentInsetAdjumentBehavior, and the old code incorrectly assumed that the mode is .always (while it is in fact is .automatic) and that no extra safe area insets have been introduced at the bottom edge. Best part, we don’t have to deal with any of this at all, we can offload the logic to UIScrollView itself by looking at the difference between adjustedContentInset and contentInset.
3. Handles view controller containment and undocked keyboards by taking into account an intersection of the scroll view frame and the keyboard’s frame. I think Apple demoes this in one of the WWDC videos, but I couldn’t find which one (or if I’m misremembering). Regardless, this technique makes sure we compute and use a sensible number.
There’s also a couple of extra renames that make the intention of the modified code clearer.