Fix edge cases in conversation view scroll continuity.
This commit is contained in:
parent
6b881b9efe
commit
b92051c881
|
@ -203,6 +203,7 @@ typedef enum : NSUInteger {
|
|||
@property (nonatomic) CGFloat scrollDistanceToBottomSnapshot;
|
||||
@property (nonatomic, nullable) NSNumber *lastKnownDistanceFromBottom;
|
||||
@property (nonatomic) ScrollBias scrollBias;
|
||||
@property (nonatomic, nullable) NSTimer *autoLoadMoreTimer;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -475,6 +476,7 @@ typedef enum : NSUInteger {
|
|||
- (void)dealloc
|
||||
{
|
||||
[self.reloadTimer invalidate];
|
||||
[self.autoLoadMoreTimer invalidate];
|
||||
}
|
||||
|
||||
- (void)reloadTimerDidFire
|
||||
|
@ -3774,10 +3776,17 @@ typedef enum : NSUInteger {
|
|||
|
||||
[self updateLastVisibleSortId];
|
||||
|
||||
__weak ConversationViewController *weakSelf = self;
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[weakSelf autoLoadMoreIfNecessary];
|
||||
});
|
||||
[self.autoLoadMoreTimer invalidate];
|
||||
self.autoLoadMoreTimer = [NSTimer weakScheduledTimerWithTimeInterval:0.1f
|
||||
target:self
|
||||
selector:@selector(autoLoadMoreTimerDidFire)
|
||||
userInfo:nil
|
||||
repeats:NO];
|
||||
}
|
||||
|
||||
- (void)autoLoadMoreTimerDidFire
|
||||
{
|
||||
[self autoLoadMoreIfNecessary];
|
||||
}
|
||||
|
||||
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
|
||||
|
|
Loading…
Reference in New Issue