Commit Graph
15 Commits
Author SHA1 Message Date
zhongwuzw 540f203f6a Fix insets calculation when present and dismiss vc && remove precision when compare double 2018-08-07 14:44:27 +08:00
Andrey Tarantsov 8f7c4077c0 Fix: make extraBottomInset work when set before showing 2018-08-01 13:27:41 +03:00
Andrey Tarantsov a0b0749231 Introduce extraBottomInset property 2018-08-01 13:14:41 +03:00
Andrey Tarantsov 79b1ff02cd Rename computeXxx to requiredXxx 2018-08-01 13:14:21 +03:00
Andrey Tarantsov 2ca89ec9cd Better document the rationale behind keyboard code 2018-08-01 12:57:10 +03:00
Andrey Tarantsov b49a0e0827 A tiny optimisation in keyboard handling 2018-08-01 12:22:21 +03:00
Andrey Tarantsov 39d4b6c032 Add a link to WWDC video about keyboard insets 2018-08-01 10:55:18 +03:00
Andrey Tarantsov 9eed4d8182 Adjust contentInset for the keyboard frame properly
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.
2018-07-30 16:47:28 +03:00
zhongwuzw d2fee1851f Fixed MessagesCollectionView's bottom inset when hardware keyboard is connected 2018-05-31 16:34:45 +08:00
zhongwuzw c82a7c0d1e update access control 2018-03-30 12:49:31 +08:00
zhongwuzw aaae67ec65 Make sizeCalculator lazy && fix access level 2018-03-30 10:09:46 +08:00
Wu ZhongandGitHub 15e26f7c85 Optimize collectionView scroll behavior when abruptly stops scrolling (#470)
* Optimize collectionView scroll behavior when abruptly stops scrolling

* Add CHANGELOG entry
2018-01-25 10:52:36 +08:00
zhongwuzw 077b884e15 code clean && recover message handle logic 2018-01-14 16:02:00 +08:00
Steven Deutsch 7a112aa4c4 Fix failing build and copyrights 2018-01-11 23:32:35 -06:00
Steven Deutsch 4a8d08e9e3 Separate MessagesViewController functionality into files 2018-01-11 22:19:38 -06:00