Browse Source

Adjust inner code implementation

Adjust inner code implementation, will not affect outer using.
MJLee 10 years ago
parent
commit
5ad60fdf30

+ 2 - 2
MJRefresh.podspec

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

+ 7 - 3
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.m

@@ -78,9 +78,13 @@ - (void)setState:(MJRefreshHeaderState)state
             case MJRefreshHeaderStatePulling:
             case MJRefreshHeaderStateRefreshing: {
                 [self.gifView stopAnimating];
-                self.gifView.animationImages = images;
-                self.gifView.animationDuration = images.count * 0.1;
-                [self.gifView startAnimating];
+                if (images.count == 1) { // 单张图片
+                    self.gifView.image = [images lastObject];
+                } else { // 多张图片
+                    self.gifView.animationImages = images;
+                    self.gifView.animationDuration = images.count * 0.1;
+                    [self.gifView startAnimating];
+                }
                 break;
             }
                 

+ 2 - 2
MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.h

@@ -18,9 +18,9 @@
 /** 下拉刷新控件 */
 @property (weak, nonatomic, readonly) MJRefreshHeader *header;
 /** gif功能的下拉刷新控件 */
-@property (nonatomic, readonly) MJRefreshGifHeader *gifHeader;
+@property (weak, nonatomic, readonly) MJRefreshGifHeader *gifHeader;
 /** 传统的下拉刷新控件 */
-@property (nonatomic, readonly) MJRefreshLegendHeader *legendHeader;
+@property (weak, nonatomic, readonly) MJRefreshLegendHeader *legendHeader;
 
 #pragma mark - 添加下拉刷新控件
 /**

+ 33 - 42
MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.m

@@ -45,8 +45,6 @@ - (MJRefreshLegendHeader *)addLegendHeaderWithRefreshingBlock:(void (^)())block
 
 - (MJRefreshLegendHeader *)addLegendHeader
 {
-    [self removeHeader];
-    
     MJRefreshLegendHeader *header = [[MJRefreshLegendHeader alloc] init];
     [self addSubview:header];
     self.header = header;
@@ -83,8 +81,6 @@ - (MJRefreshGifHeader *)addGifHeaderWithRefreshingTarget:(id)target refreshingAc
 
 - (MJRefreshGifHeader *)addGifHeader
 {
-    [self removeHeader];
-    
     MJRefreshGifHeader *header = [[MJRefreshGifHeader alloc] init];
     [self addSubview:header];
     self.header = header;
@@ -94,7 +90,6 @@ - (MJRefreshGifHeader *)addGifHeader
 
 - (void)removeHeader
 {
-    [self.header removeFromSuperview];
     self.header = nil;
 }
 
@@ -123,11 +118,16 @@ - (MJRefreshLegendHeader *)legendHeader
 static char MJRefreshHeaderKey;
 - (void)setHeader:(MJRefreshHeader *)header
 {
-    [self willChangeValueForKey:@"header"];
-    objc_setAssociatedObject(self, &MJRefreshHeaderKey,
-                             header,
-                             OBJC_ASSOCIATION_ASSIGN);
-    [self didChangeValueForKey:@"header"];}
+    if (header != self.header) {
+        [self.header removeFromSuperview];
+        
+        [self willChangeValueForKey:@"header"];
+        objc_setAssociatedObject(self, &MJRefreshHeaderKey,
+                                 header,
+                                 OBJC_ASSOCIATION_ASSIGN);
+        [self didChangeValueForKey:@"header"];
+    }
+}
 
 - (MJRefreshHeader *)header
 {
@@ -152,11 +152,9 @@ - (MJRefreshLegendFooter *)addLegendFooterWithRefreshingTarget:(id)target refres
 
 - (MJRefreshLegendFooter *)addLegendFooter
 {
-    [self removeFooter];
-    
     MJRefreshLegendFooter *footer = [[MJRefreshLegendFooter alloc] init];
     [self addSubview:footer];
-    self.legendFooter = footer;
+    self.footer = footer;
     
     return footer;
 }
@@ -178,59 +176,52 @@ - (MJRefreshGifFooter *)addGifFooterWithRefreshingTarget:(id)target refreshingAc
 
 - (MJRefreshGifFooter *)addGifFooter
 {
-    [self removeFooter];
-    
     MJRefreshGifFooter *footer = [[MJRefreshGifFooter alloc] init];
     [self addSubview:footer];
-    self.gifFooter = footer;
+    self.footer = footer;
     
     return footer;
 }
 
 - (void)removeFooter
 {
-    [self.legendFooter removeFromSuperview];
-    self.legendFooter = nil;
-    
-    [self.gifFooter removeFromSuperview];
-    self.gifFooter = nil;
+    self.footer = nil;
 }
 
-static char MJRefreshGifFooterKey;
-- (void)setGifFooter:(MJRefreshGifFooter *)gifFooter
+static char MJRefreshFooterKey;
+- (void)setFooter:(MJRefreshFooter *)footer
 {
-    [self willChangeValueForKey:@"gifFooter"];
-    objc_setAssociatedObject(self, &MJRefreshGifFooterKey,
-                             gifFooter,
-                             OBJC_ASSOCIATION_ASSIGN);
-    [self didChangeValueForKey:@"gifFooter"];
+    if (footer != self.footer) {
+        [self.footer removeFromSuperview];
+        
+        [self willChangeValueForKey:@"footer"];
+        objc_setAssociatedObject(self, &MJRefreshFooterKey,
+                                 footer,
+                                 OBJC_ASSOCIATION_ASSIGN);
+        [self didChangeValueForKey:@"footer"];
+    }
 }
 
 - (MJRefreshGifFooter *)gifFooter
 {
-    return objc_getAssociatedObject(self, &MJRefreshGifFooterKey);
-}
-
-static char MJRefreshLegendFooterKey;
-- (void)setLegendFooter:(MJRefreshLegendFooter *)legendFooter
-{
-    [self willChangeValueForKey:@"legendFooter"];
-    objc_setAssociatedObject(self, &MJRefreshLegendFooterKey,
-                             legendFooter,
-                             OBJC_ASSOCIATION_ASSIGN);
-    [self didChangeValueForKey:@"legendFooter"];
+    if ([self.footer isKindOfClass:[MJRefreshGifFooter class]]) {
+        return (MJRefreshGifFooter *)self.footer;
+    }
+    return nil;
 }
 
 - (MJRefreshLegendFooter *)legendFooter
 {
-    return objc_getAssociatedObject(self, &MJRefreshLegendFooterKey);
+    if ([self.footer isKindOfClass:[MJRefreshLegendFooter class]]) {
+        return (MJRefreshLegendFooter *)self.footer;
+    }
+    return nil;
 }
 
 
 - (MJRefreshFooter *)footer
 {
-    MJRefreshFooter *footer = self.legendFooter;
-    return footer ? footer : self.gifFooter;
+    return objc_getAssociatedObject(self, &MJRefreshFooterKey);
 }
 
 #pragma mark - swizzle