From 0e87d2e5b31dfe326031df1eb1eaa92d5a7126b5 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 9 Apr 2019 11:50:39 -0400 Subject: [PATCH] Simplify the scroll down button layout. --- .../ConversationView/ConversationViewController.m | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index a5f9b69e1..5c09f4e3e 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -2595,7 +2595,7 @@ typedef enum : NSUInteger { { CGFloat inset = -(self.collectionView.contentInset.bottom + self.bottomLayoutGuide.length); self.scrollDownButtonButtomConstraint.constant = inset; - [self.view setNeedsLayout]; + [self.scrollDownButton setNeedsLayout]; } - (void)setHasUnreadMessages:(BOOL)hasUnreadMessages @@ -3886,16 +3886,14 @@ typedef enum : NSUInteger { // RADAR: #36297652 [self updateScrollDownButtonLayout]; - [self.scrollDownButton setNeedsLayout]; - [self.scrollDownButton layoutIfNeeded]; // 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); + newButtonFrame.origin.y = self.scrollDownButton.superview.height + - (newInsets.bottom + self.scrollDownButton.height + self.bottomLayoutGuide.length); self.scrollDownButton.frame = newButtonFrame; // Adjust content offset to prevent the presented keyboard from obscuring content.