Explorar o código

iOS11 estimatedRowHeight fix

修复的问题:iOS11中设置estimatedRowHeight进行自动计算高度时,上拉刷新不断调用
M了个J %!s(int64=8) %!d(string=hai) anos
pai
achega
459415d6aa

+ 1 - 1
MJRefresh.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
 Pod::Spec.new do |s|
     s.name         = 'MJRefresh'
     s.name         = 'MJRefresh'
-    s.version      = '3.1.14.1'
+    s.version      = '3.1.15'
     s.summary      = 'An easy way to use pull-to-refresh'
     s.summary      = 'An easy way to use pull-to-refresh'
     s.homepage     = 'https://github.com/CoderMJLee/MJRefresh'
     s.homepage     = 'https://github.com/CoderMJLee/MJRefresh'
     s.license      = 'MIT'
     s.license      = 'MIT'

+ 0 - 14
MJRefresh/Base/MJRefreshBackFooter.m

@@ -125,20 +125,6 @@ - (void)setState:(MJRefreshState)state
         }];
         }];
     }
     }
 }
 }
-
-- (void)endRefreshing
-{
-    dispatch_async(dispatch_get_main_queue(), ^{
-        self.state = MJRefreshStateIdle;
-    });
-}
-
-- (void)endRefreshingWithNoMoreData
-{
-    dispatch_async(dispatch_get_main_queue(), ^{
-        self.state = MJRefreshStateNoMoreData;
-    });
-}
 #pragma mark - 私有方法
 #pragma mark - 私有方法
 #pragma mark 获得scrollView的内容 超出 view 的高度
 #pragma mark 获得scrollView的内容 超出 view 的高度
 - (CGFloat)heightForContentBreakView
 - (CGFloat)heightForContentBreakView

+ 4 - 2
MJRefresh/Base/MJRefreshComponent.m

@@ -58,7 +58,7 @@ - (void)willMoveToSuperview:(UIView *)newSuperview
         // 设置宽度
         // 设置宽度
         self.mj_w = newSuperview.mj_w;
         self.mj_w = newSuperview.mj_w;
         // 设置位置
         // 设置位置
-        self.mj_x = 0;
+        self.mj_x = -_scrollView.mj_insetL;
         
         
         // 记录UIScrollView
         // 记录UIScrollView
         _scrollView = (UIScrollView *)newSuperview;
         _scrollView = (UIScrollView *)newSuperview;
@@ -171,7 +171,9 @@ - (void)beginRefreshingWithCompletionBlock:(void (^)(void))completionBlock
 #pragma mark 结束刷新状态
 #pragma mark 结束刷新状态
 - (void)endRefreshing
 - (void)endRefreshing
 {
 {
-    self.state = MJRefreshStateIdle;
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateIdle;
+    });
 }
 }
 
 
 - (void)endRefreshingWithCompletionBlock:(void (^)(void))completionBlock
 - (void)endRefreshingWithCompletionBlock:(void (^)(void))completionBlock

+ 6 - 2
MJRefresh/Base/MJRefreshFooter.m

@@ -59,7 +59,9 @@ - (void)willMoveToSuperview:(UIView *)newSuperview
 #pragma mark - 公共方法
 #pragma mark - 公共方法
 - (void)endRefreshingWithNoMoreData
 - (void)endRefreshingWithNoMoreData
 {
 {
-    self.state = MJRefreshStateNoMoreData;
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateNoMoreData;
+    });
 }
 }
 
 
 - (void)noticeNoMoreData
 - (void)noticeNoMoreData
@@ -69,6 +71,8 @@ - (void)noticeNoMoreData
 
 
 - (void)resetNoMoreData
 - (void)resetNoMoreData
 {
 {
-    self.state = MJRefreshStateIdle;
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateIdle;
+    });
 }
 }
 @end
 @end

+ 3 - 8
MJRefresh/Base/MJRefreshHeader.m

@@ -130,7 +130,9 @@ - (void)setState:(MJRefreshState)state
                 // 增加滚动区域top
                 // 增加滚动区域top
                 self.scrollView.mj_insetT = top;
                 self.scrollView.mj_insetT = top;
                 // 设置滚动位置
                 // 设置滚动位置
-                [self.scrollView setContentOffset:CGPointMake(0, -top) animated:NO];
+                CGPoint offset = self.scrollView.contentOffset;
+                offset.y = -top;
+                [self.scrollView setContentOffset:offset animated:NO];
             } completion:^(BOOL finished) {
             } completion:^(BOOL finished) {
                 [self executeRefreshingCallback];
                 [self executeRefreshingCallback];
             }];
             }];
@@ -139,13 +141,6 @@ - (void)setState:(MJRefreshState)state
 }
 }
 
 
 #pragma mark - 公共方法
 #pragma mark - 公共方法
-- (void)endRefreshing
-{
-    dispatch_async(dispatch_get_main_queue(), ^{
-        self.state = MJRefreshStateIdle;
-    });
-}
-
 - (NSDate *)lastUpdatedTime
 - (NSDate *)lastUpdatedTime
 {
 {
     return [[NSUserDefaults standardUserDefaults] objectForKey:self.lastUpdatedTimeKey];
     return [[NSUserDefaults standardUserDefaults] objectForKey:self.lastUpdatedTimeKey];

+ 2 - 2
MJRefresh/UIScrollView+MJExtension.m

@@ -75,7 +75,7 @@ - (void)setMj_insetL:(CGFloat)mj_insetL
 
 
 - (CGFloat)mj_insetL
 - (CGFloat)mj_insetL
 {
 {
-    return self.contentInset.left;
+    return self.mj_inset.left;
 }
 }
 
 
 - (void)setMj_insetR:(CGFloat)mj_insetR
 - (void)setMj_insetR:(CGFloat)mj_insetR
@@ -92,7 +92,7 @@ - (void)setMj_insetR:(CGFloat)mj_insetR
 
 
 - (CGFloat)mj_insetR
 - (CGFloat)mj_insetR
 {
 {
-    return self.contentInset.right;
+    return self.mj_inset.right;
 }
 }
 
 
 - (void)setMj_offsetX:(CGFloat)mj_offsetX
 - (void)setMj_offsetX:(CGFloat)mj_offsetX

+ 0 - 19
MJRefreshFramework/MJRefreshFramework.h

@@ -1,19 +0,0 @@
-//
-//  MJRefreshFramework.h
-//  MJRefreshFramework
-//
-//  Created by MJ Lee on 2017/9/28.
-//  Copyright © 2017年 小码哥. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-//! Project version number for MJRefreshFramework.
-FOUNDATION_EXPORT double MJRefreshFrameworkVersionNumber;
-
-//! Project version string for MJRefreshFramework.
-FOUNDATION_EXPORT const unsigned char MJRefreshFrameworkVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import <MJRefreshFramework/PublicHeader.h>
-
-