Browse Source

一些残留的问题

1.用async+mainQueue替代endRefreshing的0.1s延迟问题
2.完善:圈圈控件根据文字长短变换位置
MJ Lee 9 years ago
parent
commit
ada9e248ae

+ 1 - 1
MJRefresh.podspec

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

+ 7 - 17
MJRefresh/Base/MJRefreshBackFooter.m

@@ -122,29 +122,19 @@ - (void)setState:(MJRefreshState)state
     }
 }
 
-#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];
-    }
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateIdle;
+    });
 }
 
-- (void)noticeNoMoreData
+- (void)endRefreshingWithNoMoreData
 {
-    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 noticeNoMoreData];
-        });
-    } else {
-        [super noticeNoMoreData];
-    }
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateNoMoreData;
+    });
 }
-
 #pragma mark - 私有方法
 #pragma mark 获得scrollView的内容 超出 view 的高度
 - (CGFloat)heightForContentBreakView

+ 3 - 1
MJRefresh/Base/MJRefreshComponent.m

@@ -170,7 +170,9 @@ - (void)setState:(MJRefreshState)state
 {
     _state = state;
     
-    [self setNeedsLayout];
+    dispatch_async(dispatch_get_main_queue(), ^{
+        [self setNeedsLayout];
+    });
 }
 
 #pragma mark 进入刷新状态

+ 3 - 7
MJRefresh/Base/MJRefreshHeader.m

@@ -137,13 +137,9 @@ - (void)setState:(MJRefreshState)state
 #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];
-    }
+    dispatch_async(dispatch_get_main_queue(), ^{
+        self.state = MJRefreshStateIdle;
+    });
 }
 
 - (NSDate *)lastUpdatedTime

+ 1 - 1
MJRefreshExample/Classes/Second/MJCollectionViewController.m

@@ -48,7 +48,7 @@ - (void)example21
     [self.collectionView.mj_header beginRefreshing];
 
     // 上拉刷新
-    self.collectionView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
+    self.collectionView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
         // 增加5条假数据
         for (int i = 0; i<5; i++) {
             [weakSelf.colors addObject:MJRandomColor];