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