From 8bd7669db9575062eddd57a40ce2c340d1f73964 Mon Sep 17 00:00:00 2001 From: SweetTC <2246654351@qq.com> Date: Sat, 16 Jun 2018 17:14:41 +0800 Subject: [PATCH] fix bug (about to ContentInset) . When i use it in 'UITableViewController' , after it help me with Refresh, tableView's contentInset changed~ it's not what we want always ~~ --- .../YALSunnyRefreshControl.m | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/YALTourPullToRefresh/YALSunnyRefreshControll/YALSunnyRefreshControl.m b/YALTourPullToRefresh/YALSunnyRefreshControll/YALSunnyRefreshControl.m index c5c6df6..79b5f12 100755 --- a/YALTourPullToRefresh/YALSunnyRefreshControll/YALSunnyRefreshControl.m +++ b/YALTourPullToRefresh/YALSunnyRefreshControll/YALSunnyRefreshControl.m @@ -48,6 +48,9 @@ @interface YALSunnyRefreshControl () @property (nonatomic,assign) BOOL isSunRotating; @property (nonatomic,assign) BOOL forbidContentInsetChanges; +/* Record the original frame */ +@property (nonatomic, assign) UIEdgeInsets originalContentInset; + @end @implementation YALSunnyRefreshControl @@ -120,6 +123,13 @@ -(void)calculateShift{ if(self.scrollView.contentOffset.y <= -DefaultHeight){ + // Record Right now ~~ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + self.originalContentInset = self.scrollView.contentInset; + NSLog(@"++%@", NSStringFromUIEdgeInsets(self.scrollView.contentInset)); + }); + if(self.scrollView.contentOffset.y < -SpringTreshold){ [self.scrollView setContentOffset:CGPointMake(0.f, -SpringTreshold)]; @@ -169,7 +179,11 @@ -(void)returnToDefaultState{ initialSpringVelocity:AnimationVelosity options:UIViewAnimationOptionCurveLinear animations:^{ - [self.scrollView setContentInset:UIEdgeInsetsMake(0, 0.f, 0.f, 0.f)]; + + // [self.scrollView setContentInset:UIEdgeInsetsMake(0, 0.f, 0.f, 0.f)]; + + // restore that original ContentInset ~ + [self.scrollView setContentInset:self.originalContentInset]; } completion:nil]; self.forbidSunSet = NO; [self stopSunRotating];