From 42871bb6a60f65c33fe6fab53d1bcd8709bf9c42 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 9 Apr 2019 14:48:01 -0400 Subject: [PATCH] Simplify the scroll down button layout. --- .../ConversationView/ConversationViewController.m | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index 5c09f4e3e..5e305ae7b 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -2595,7 +2595,6 @@ typedef enum : NSUInteger { { CGFloat inset = -(self.collectionView.contentInset.bottom + self.bottomLayoutGuide.length); self.scrollDownButtonButtomConstraint.constant = inset; - [self.scrollDownButton setNeedsLayout]; } - (void)setHasUnreadMessages:(BOOL)hasUnreadMessages @@ -3886,15 +3885,7 @@ typedef enum : NSUInteger { // RADAR: #36297652 [self updateScrollDownButtonLayout]; - // HACK: I've made the assumption that we are already in the context of an animation, in which case the - // above should be sufficient to smoothly move the scrollDown button in step with the keyboard presentation - // animation. Yet, setting the constraint doesn't animate the movement of the button - it "jumps" to it's final - // position. So here we manually lay out the scroll down button frame (seemingly redundantly), which allows it - // to be smoothly animated. - CGRect newButtonFrame = self.scrollDownButton.frame; - newButtonFrame.origin.y = self.scrollDownButton.superview.height - - (newInsets.bottom + self.scrollDownButton.height + self.bottomLayoutGuide.length); - self.scrollDownButton.frame = newButtonFrame; + [self.view layoutSubviews]; // Adjust content offset to prevent the presented keyboard from obscuring content. if (!self.viewHasEverAppeared) { @@ -5164,6 +5155,7 @@ typedef enum : NSUInteger { // Scroll button layout depends on input toolbar size. [self updateScrollDownButtonLayout]; + [self.view setNeedsLayout]; } @end