Kaynağa Gözat

Adjust code of property header, gifHeader and legendHeader for scalability.

Signed-off-by: 庞博 <bopang@sohu-inc.com>
庞博 10 yıl önce
ebeveyn
işleme
e899f28990

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

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

+ 27 - 30
MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.m

@@ -49,7 +49,7 @@ - (MJRefreshLegendHeader *)addLegendHeader
     
     MJRefreshLegendHeader *header = [[MJRefreshLegendHeader alloc] init];
     [self addSubview:header];
-    self.legendHeader = header;
+    self.header = header;
     
     return header;
 }
@@ -87,54 +87,51 @@ - (MJRefreshGifHeader *)addGifHeader
     
     MJRefreshGifHeader *header = [[MJRefreshGifHeader alloc] init];
     [self addSubview:header];
-    self.gifHeader = header;
+    self.header = header;
     
     return header;
 }
 
 - (void)removeHeader
 {
-    [self.legendHeader removeFromSuperview];
-    self.legendHeader = nil;
-    
-    [self.gifHeader removeFromSuperview];
-    self.gifHeader = nil;
-}
-
-static char MJRefreshGifHeaderKey;
-- (void)setGifHeader:(MJRefreshGifHeader *)gifHeader
-{
-    [self willChangeValueForKey:@"gifHeader"];
-    objc_setAssociatedObject(self, &MJRefreshGifHeaderKey,
-                             gifHeader,
-                             OBJC_ASSOCIATION_ASSIGN);
-    [self didChangeValueForKey:@"gifHeader"];
+    [self.header removeFromSuperview];
+    self.header = nil;
 }
 
+#pragma mark - Property Methods
+#pragma mark gifHeader
 - (MJRefreshGifHeader *)gifHeader
 {
-    return objc_getAssociatedObject(self, &MJRefreshGifHeaderKey);
+    if ([self.header isKindOfClass:[MJRefreshGifHeader class]]) {
+        return (MJRefreshGifHeader *)self.header;
+    }
+    
+    return nil;
 }
 
-static char MJRefreshLegendHeaderKey;
-- (void)setLegendHeader:(MJRefreshLegendHeader *)legendHeader
+#pragma mark legendHeader
+- (MJRefreshLegendHeader *)legendHeader
 {
-    [self willChangeValueForKey:@"legendHeader"];
-    objc_setAssociatedObject(self, &MJRefreshLegendHeaderKey,
-                             legendHeader,
-                             OBJC_ASSOCIATION_ASSIGN);
-    [self didChangeValueForKey:@"legendHeader"];
+    if ([self.header isKindOfClass:[MJRefreshLegendHeader class]]) {
+        return (MJRefreshLegendHeader *)self.header;
+    }
+    
+    return nil;
 }
 
-- (MJRefreshLegendHeader *)legendHeader
+#pragma mark header
+static char MJRefreshHeaderKey;
+- (void)setHeader:(MJRefreshHeader *)header
 {
-    return objc_getAssociatedObject(self, &MJRefreshLegendHeaderKey);
-}
+    [self willChangeValueForKey:@"header"];
+    objc_setAssociatedObject(self, &MJRefreshHeaderKey,
+                             header,
+                             OBJC_ASSOCIATION_ASSIGN);
+    [self didChangeValueForKey:@"header"];}
 
 - (MJRefreshHeader *)header
 {
-    MJRefreshHeader *header = self.legendHeader;
-    return header ? header : self.gifHeader;
+    return objc_getAssociatedObject(self, &MJRefreshHeaderKey);
 }
 
 #pragma mark - 上拉刷新