From 7ab063d5c658143b5bce7ca8e5ae9bfc700bb1d8 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 01 二月 2021 18:22:29 +0800 Subject: [PATCH] 2021-02-01 1.更新 --- Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/MJRefresh/Base/MJRefreshHeader.m | 52 ++++++++++++++++++++++++++++------------------------ 1 files changed, 28 insertions(+), 24 deletions(-) diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/Base/MJRefreshHeader.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/MJRefresh/Base/MJRefreshHeader.m similarity index 73% rename from Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/Base/MJRefreshHeader.m rename to Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/MJRefresh/Base/MJRefreshHeader.m index 7f7e2c2..7b7249c 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/Base/MJRefreshHeader.m +++ b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/MJRefresh/Base/MJRefreshHeader.m @@ -10,7 +10,7 @@ #import "MJRefreshHeader.h" @interface MJRefreshHeader() - +@property (assign, nonatomic) CGFloat insetTDelta; @end @implementation MJRefreshHeader @@ -54,12 +54,20 @@ // 鍦ㄥ埛鏂扮殑refreshing鐘舵�� if (self.state == MJRefreshStateRefreshing) { + // 鏆傛椂淇濈暀 + if (self.window == nil) return; + // sectionheader鍋滅暀瑙e喅 + CGFloat insetT = - self.scrollView.mj_offsetY > _scrollViewOriginalInset.top ? - self.scrollView.mj_offsetY : _scrollViewOriginalInset.top; + insetT = insetT > self.mj_h + _scrollViewOriginalInset.top ? self.mj_h + _scrollViewOriginalInset.top : insetT; + self.scrollView.mj_insetT = insetT; + + self.insetTDelta = _scrollViewOriginalInset.top - insetT; return; } // 璺宠浆鍒颁笅涓�涓帶鍒跺櫒鏃讹紝contentInset鍙兘浼氬彉 - _scrollViewOriginalInset = self.scrollView.contentInset; + _scrollViewOriginalInset = self.scrollView.mj_inset; // 褰撳墠鐨刢ontentOffset CGFloat offsetY = self.scrollView.mj_offsetY; @@ -105,39 +113,35 @@ // 鎭㈠inset鍜宱ffset [UIView animateWithDuration:MJRefreshSlowAnimationDuration animations:^{ - self.scrollView.mj_insetT -= self.mj_h; + self.scrollView.mj_insetT += self.insetTDelta; // 鑷姩璋冩暣閫忔槑搴� if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0; } completion:^(BOOL finished) { self.pullingPercent = 0.0; + + if (self.endRefreshingCompletionBlock) { + self.endRefreshingCompletionBlock(); + } }]; } else if (state == MJRefreshStateRefreshing) { - [UIView animateWithDuration:MJRefreshFastAnimationDuration animations:^{ - // 澧炲姞婊氬姩鍖哄煙 - CGFloat top = self.scrollViewOriginalInset.top + self.mj_h; - self.scrollView.mj_insetT = top; - - // 璁剧疆婊氬姩浣嶇疆 - self.scrollView.mj_offsetY = - top; - } completion:^(BOOL finished) { - [self executeRefreshingCallback]; - }]; + dispatch_async(dispatch_get_main_queue(), ^{ + [UIView animateWithDuration:MJRefreshFastAnimationDuration animations:^{ + CGFloat top = self.scrollViewOriginalInset.top + self.mj_h; + // 澧炲姞婊氬姩鍖哄煙top + self.scrollView.mj_insetT = top; + // 璁剧疆婊氬姩浣嶇疆 + CGPoint offset = self.scrollView.contentOffset; + offset.y = -top; + [self.scrollView setContentOffset:offset animated:NO]; + } completion:^(BOOL finished) { + [self executeRefreshingCallback]; + }]; + }); } } #pragma mark - 鍏叡鏂规硶 -- (void)endRefreshing -{ - if ([self.scrollView isKindOfClass:[UICollectionView class]]) { - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [super endRefreshing]; - }); - } else { - [super endRefreshing]; - } -} - - (NSDate *)lastUpdatedTime { return [[NSUserDefaults standardUserDefaults] objectForKey:self.lastUpdatedTimeKey]; -- Gitblit v1.8.0