Browse Source

Fix NoMoreData problem

Fix NoMoreData problem
MJLee 10 years ago
parent
commit
4c44c1d89b
2 changed files with 24 additions and 18 deletions
  1. 2 2
      MJRefresh.podspec
  2. 22 16
      MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m

+ 2 - 2
MJRefresh.podspec

@@ -1,12 +1,12 @@
 Pod::Spec.new do |s|
   s.name         = "MJRefresh"
-  s.version      = "1.3.2"
+  s.version      = "1.3.3"
   s.summary      = "The easiest way to use pull-to-refresh"
   s.homepage     = "https://github.com/CoderMJLee/MJRefresh"
   s.license      = "MIT"
   s.authors      = { 'MJ Lee' => '199109106@qq.com'}
   s.platform     = :ios, "6.0"
-  s.source       = { :git => "https://github.com/CoderMJLee/MJRefresh.git", :tag => "1.3.2" }
+  s.source       = { :git => "https://github.com/CoderMJLee/MJRefresh.git", :tag => "1.3.3" }
   s.source_files = "MJRefreshExample/MJRefreshExample/MJRefresh/*.{h,m}"
   s.resource     = "MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle"
   s.requires_arc = true

+ 22 - 16
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m

@@ -121,26 +121,32 @@ - (void)layoutSubviews
 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
 {
     // 遇到这些情况就直接返回
-    if (!self.userInteractionEnabled || self.alpha <= 0.01 || self.hidden || self.state == MJRefreshFooterStateNoMoreData) return;
+    if (!self.userInteractionEnabled || self.alpha <= 0.01 || self.hidden) return;
     
-    // 根据contentOffset调整state
-    if ([keyPath isEqualToString:MJRefreshPanState]) {
-        if (_scrollView.panGestureRecognizer.state == UIGestureRecognizerStateEnded) {// 手松开
-            if (_scrollView.mj_insetT + _scrollView.mj_contentSizeH <= _scrollView.mj_h) {  // 不够一个屏幕
-                if (_scrollView.mj_offsetY > - _scrollView.mj_insetT) { // 向上拽
-                    [self beginRefreshing];
-                }
-            } else { // 超出一个屏幕
-                if (_scrollView.mj_offsetY > _scrollView.mj_contentSizeH + _scrollView.mj_insetB - _scrollView.mj_h) {
-                    [self beginRefreshing];
+    if (self.state == MJRefreshFooterStateIdle) {
+        // 当是Idle状态时,才需要检测是否要进入刷新状态
+        if ([keyPath isEqualToString:MJRefreshPanState]) {
+            if (_scrollView.panGestureRecognizer.state == UIGestureRecognizerStateEnded) {// 手松开
+                if (_scrollView.mj_insetT + _scrollView.mj_contentSizeH <= _scrollView.mj_h) {  // 不够一个屏幕
+                    if (_scrollView.mj_offsetY > - _scrollView.mj_insetT) { // 向上拽
+                        [self beginRefreshing];
+                    }
+                } else { // 超出一个屏幕
+                    if (_scrollView.mj_offsetY > _scrollView.mj_contentSizeH + _scrollView.mj_insetB - _scrollView.mj_h) {
+                        [self beginRefreshing];
+                    }
                 }
             }
+        } else if ([keyPath isEqualToString:MJRefreshContentOffset]) {
+            if (self.state != MJRefreshFooterStateRefreshing && self.automaticallyRefresh) {
+                // 根据contentOffset调整state
+                [self adjustStateWithContentOffset];
+            }
         }
-    } else if ([keyPath isEqualToString:MJRefreshContentOffset]) {
-        if (self.state != MJRefreshFooterStateRefreshing && self.automaticallyRefresh) {
-            [self adjustStateWithContentOffset];
-        }
-    } else if ([keyPath isEqualToString:MJRefreshContentSize]) {
+    }
+    
+    // 不管是什么状态,都要调整位置
+    if ([keyPath isEqualToString:MJRefreshContentSize]) {
         [self adjustFrameWithContentSize];
     }
 }