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.更新

---
 EZSDK/EZSDK/EZ/Venders/MJRefresh/MJRefresh/Base/MJRefreshComponent.m |   76 +++++++++++++++++++++++++++++++------
 1 files changed, 63 insertions(+), 13 deletions(-)

diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/Base/MJRefreshComponent.m b/EZSDK/EZSDK/EZ/Venders/MJRefresh/MJRefresh/Base/MJRefreshComponent.m
similarity index 74%
copy from Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/Base/MJRefreshComponent.m
copy to EZSDK/EZSDK/EZ/Venders/MJRefresh/MJRefresh/Base/MJRefreshComponent.m
index 1b6ea27..6661ba6 100644
--- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Venders/MJRefresh/Base/MJRefreshComponent.m
+++ b/EZSDK/EZSDK/EZ/Venders/MJRefresh/MJRefresh/Base/MJRefreshComponent.m
@@ -9,8 +9,6 @@
 
 #import "MJRefreshComponent.h"
 #import "MJRefreshConst.h"
-#import "UIView+MJExtension.h"
-#import "UIScrollView+MJRefresh.h"
 
 @interface MJRefreshComponent()
 @property (strong, nonatomic) UIPanGestureRecognizer *pan;
@@ -39,9 +37,9 @@
 
 - (void)layoutSubviews
 {
-    [super layoutSubviews];
-    
     [self placeSubviews];
+    
+    [super layoutSubviews];
 }
 
 - (void)placeSubviews{}
@@ -60,14 +58,14 @@
         // 璁剧疆瀹藉害
         self.mj_w = newSuperview.mj_w;
         // 璁剧疆浣嶇疆
-        self.mj_x = 0;
+        self.mj_x = -_scrollView.mj_insetL;
         
         // 璁板綍UIScrollView
         _scrollView = (UIScrollView *)newSuperview;
         // 璁剧疆姘歌繙鏀寔鍨傜洿寮圭哀鏁堟灉
         _scrollView.alwaysBounceVertical = YES;
         // 璁板綍UIScrollView鏈�寮�濮嬬殑contentInset
-        _scrollViewOriginalInset = _scrollView.contentInset;
+        _scrollViewOriginalInset = _scrollView.mj_inset;
         
         // 娣诲姞鐩戝惉
         [self addObservers];
@@ -97,7 +95,7 @@
 - (void)removeObservers
 {
     [self.superview removeObserver:self forKeyPath:MJRefreshKeyPathContentOffset];
-    [self.superview removeObserver:self forKeyPath:MJRefreshKeyPathContentSize];;
+    [self.superview removeObserver:self forKeyPath:MJRefreshKeyPathContentSize];
     [self.pan removeObserver:self forKeyPath:MJRefreshKeyPathPanState];
     self.pan = nil;
 }
@@ -133,6 +131,16 @@
     self.refreshingAction = action;
 }
 
+- (void)setState:(MJRefreshState)state
+{
+    _state = state;
+    
+    // 鍔犲叆涓婚槦鍒楃殑鐩殑鏄瓑setState:鏂规硶璋冪敤瀹屾瘯銆佽缃畬鏂囧瓧鍚庡啀鍘诲竷灞�瀛愭帶浠�
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [self setNeedsLayout];
+    });
+}
+
 #pragma mark 杩涘叆鍒锋柊鐘舵��
 - (void)beginRefreshing
 {
@@ -144,16 +152,35 @@
     if (self.window) {
         self.state = MJRefreshStateRefreshing;
     } else {
-        self.state = MJRefreshStateWillRefresh;
-        // 鍒锋柊(棰勯槻浠庡彟涓�涓帶鍒跺櫒鍥炲埌杩欎釜鎺у埗鍣ㄧ殑鎯呭喌锛屽洖鏉ヨ閲嶆柊鍒锋柊涓�涓�)
-        [self setNeedsDisplay];
+        // 棰勯槻姝e湪鍒锋柊涓椂锛岃皟鐢ㄦ湰鏂规硶浣垮緱header inset鍥炵疆澶辫触
+        if (self.state != MJRefreshStateRefreshing) {
+            self.state = MJRefreshStateWillRefresh;
+            // 鍒锋柊(棰勯槻浠庡彟涓�涓帶鍒跺櫒鍥炲埌杩欎釜鎺у埗鍣ㄧ殑鎯呭喌锛屽洖鏉ヨ閲嶆柊鍒锋柊涓�涓�)
+            [self setNeedsDisplay];
+        }
     }
+}
+
+- (void)beginRefreshingWithCompletionBlock:(void (^)(void))completionBlock
+{
+    self.beginRefreshingCompletionBlock = completionBlock;
+    
+    [self beginRefreshing];
 }
 
 #pragma mark 缁撴潫鍒锋柊鐘舵��
 - (void)endRefreshing
 {
-    self.state = MJRefreshStateIdle;
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateIdle;
+    });
+}
+
+- (void)endRefreshingWithCompletionBlock:(void (^)(void))completionBlock
+{
+    self.endRefreshingCompletionBlock = completionBlock;
+    
+    [self endRefreshing];
 }
 
 #pragma mark 鏄惁姝e湪鍒锋柊
@@ -208,12 +235,15 @@
         if ([self.refreshingTarget respondsToSelector:self.refreshingAction]) {
             MJRefreshMsgSend(MJRefreshMsgTarget(self.refreshingTarget), self.refreshingAction, self);
         }
+        if (self.beginRefreshingCompletionBlock) {
+            self.beginRefreshingCompletionBlock();
+        }
     });
 }
 @end
 
 @implementation UILabel(MJRefresh)
-+ (instancetype)label
++ (instancetype)mj_label
 {
     UILabel *label = [[self alloc] init];
     label.font = MJRefreshLabelFont;
@@ -223,4 +253,24 @@
     label.backgroundColor = [UIColor clearColor];
     return label;
 }
-@end
\ No newline at end of file
+
+- (CGFloat)mj_textWith {
+    CGFloat stringWidth = 0;
+    CGSize size = CGSizeMake(MAXFLOAT, MAXFLOAT);
+    if (self.text.length > 0) {
+#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
+        stringWidth =[self.text
+                      boundingRectWithSize:size
+                      options:NSStringDrawingUsesLineFragmentOrigin
+                      attributes:@{NSFontAttributeName:self.font}
+                      context:nil].size.width;
+#else
+        
+        stringWidth = [self.text sizeWithFont:self.font
+                             constrainedToSize:size
+                                 lineBreakMode:NSLineBreakByCharWrapping].width;
+#endif
+    }
+    return stringWidth;
+}
+@end

--
Gitblit v1.8.0