Fix edge cases in conversation view scroll continuity.

pull/1/head
Matthew Chen 6 years ago
parent 6b881b9efe
commit b92051c881

@ -203,6 +203,7 @@ typedef enum : NSUInteger {
@property (nonatomic) CGFloat scrollDistanceToBottomSnapshot; @property (nonatomic) CGFloat scrollDistanceToBottomSnapshot;
@property (nonatomic, nullable) NSNumber *lastKnownDistanceFromBottom; @property (nonatomic, nullable) NSNumber *lastKnownDistanceFromBottom;
@property (nonatomic) ScrollBias scrollBias; @property (nonatomic) ScrollBias scrollBias;
@property (nonatomic, nullable) NSTimer *autoLoadMoreTimer;
@end @end
@ -475,6 +476,7 @@ typedef enum : NSUInteger {
- (void)dealloc - (void)dealloc
{ {
[self.reloadTimer invalidate]; [self.reloadTimer invalidate];
[self.autoLoadMoreTimer invalidate];
} }
- (void)reloadTimerDidFire - (void)reloadTimerDidFire
@ -3774,10 +3776,17 @@ typedef enum : NSUInteger {
[self updateLastVisibleSortId]; [self updateLastVisibleSortId];
__weak ConversationViewController *weakSelf = self; [self.autoLoadMoreTimer invalidate];
dispatch_async(dispatch_get_main_queue(), ^{ self.autoLoadMoreTimer = [NSTimer weakScheduledTimerWithTimeInterval:0.1f
[weakSelf autoLoadMoreIfNecessary]; target:self
}); selector:@selector(autoLoadMoreTimerDidFire)
userInfo:nil
repeats:NO];
}
- (void)autoLoadMoreTimerDidFire
{
[self autoLoadMoreIfNecessary];
} }
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

Loading…
Cancel
Save