Browse Source

Change [super setState:state] position

Change [super setState:state] position to fix a little bug
MJLee 10 years ago
parent
commit
7eecac9557

+ 2 - 2
MJRefresh.podspec

@@ -1,12 +1,12 @@
 Pod::Spec.new do |s|
   s.name         = "MJRefresh"
-  s.version      = "1.3.1"
+  s.version      = "1.3.2"
   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.1" }
+  s.source       = { :git => "https://github.com/CoderMJLee/MJRefresh.git", :tag => "1.3.2" }
   s.source_files = "MJRefreshExample/MJRefreshExample/MJRefresh/*.{h,m}"
   s.resource     = "MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle"
   s.requires_arc = true

+ 3 - 2
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.m

@@ -48,8 +48,6 @@ - (void)setState:(MJRefreshFooterState)state
 {
     if (self.state == state) return;
     
-    [super setState:state];
-    
     switch (state) {
         case MJRefreshFooterStateIdle:
             self.gifView.hidden = YES;
@@ -69,6 +67,9 @@ - (void)setState:(MJRefreshFooterState)state
         default:
             break;
     }
+    
+    // super里面有回调,应该在最后面调用
+    [super setState:state];
 }
 
 - (void)setRefreshingImages:(NSArray *)refreshingImages

+ 26 - 24
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.m

@@ -60,35 +60,37 @@ - (void)setState:(MJRefreshHeaderState)state
     
     // 旧状态
     MJRefreshHeaderState oldState = self.state;
-    [super setState:state];
     
     NSArray *images = self.stateImages[@(state)];
-    if (images.count == 0) return;
-    
-    switch (state) {
-        case MJRefreshHeaderStateIdle: {
-            if (oldState == MJRefreshHeaderStateRefreshing) {
-                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJRefreshSlowAnimationDuration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                    self.pullingPercent = 0.0;
-                });
-            } else {
-                self.pullingPercent = self.pullingPercent;
+    if (images.count != 0) {
+        switch (state) {
+            case MJRefreshHeaderStateIdle: {
+                if (oldState == MJRefreshHeaderStateRefreshing) {
+                    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(MJRefreshSlowAnimationDuration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                        self.pullingPercent = 0.0;
+                    });
+                } else {
+                    self.pullingPercent = self.pullingPercent;
+                }
+                break;
             }
-            break;
-        }
-            
-        case MJRefreshHeaderStatePulling:
-        case MJRefreshHeaderStateRefreshing: {
-            [self.gifView stopAnimating];
-            self.gifView.animationImages = images;
-            self.gifView.animationDuration = images.count * 0.1;
-            [self.gifView startAnimating];
-            break;
+                
+            case MJRefreshHeaderStatePulling:
+            case MJRefreshHeaderStateRefreshing: {
+                [self.gifView stopAnimating];
+                self.gifView.animationImages = images;
+                self.gifView.animationDuration = images.count * 0.1;
+                [self.gifView startAnimating];
+                break;
+            }
+                
+            default:
+                break;
         }
-            
-        default:
-            break;
     }
+    
+    // super里面有回调,应该在最后面调用
+    [super setState:state];
 }
 
 - (void)setPullingPercent:(CGFloat)pullingPercent

+ 3 - 2
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.m

@@ -45,8 +45,6 @@ - (void)setState:(MJRefreshFooterState)state
 {
     if (self.state == state) return;
     
-    [super setState:state];
-    
     switch (state) {
         case MJRefreshFooterStateIdle:
             [self.activityView stopAnimating];
@@ -63,5 +61,8 @@ - (void)setState:(MJRefreshFooterState)state
         default:
             break;
     }
+    
+    // super里面有回调,应该在最后面调用
+    [super setState:state];
 }
 @end

+ 3 - 1
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.m

@@ -58,7 +58,6 @@ - (void)setState:(MJRefreshHeaderState)state
     
     // 旧状态
     MJRefreshHeaderState oldState = self.state;
-    [super setState:state];
     
     switch (state) {
         case MJRefreshHeaderStateIdle: {
@@ -96,6 +95,9 @@ - (void)setState:(MJRefreshHeaderState)state
         default:
             break;
     }
+    
+    // super里面有回调,应该在最后面调用
+    [super setState:state];
 }
 
 @end