Kaynağa Gözat

Add Refresh Date Code

MJ Lee 11 yıl önce
ebeveyn
işleme
4e6a9878ec

BIN
MJRefreshExample/MJRefreshExample.xcodeproj/project.xcworkspace/xcuserdata/mj.xcuserdatad/UserInterfaceState.xcuserstate


+ 2 - 1
MJRefreshExample/MJRefreshExample/Classes/Controller/MJCollectionViewController.m

@@ -99,7 +99,8 @@ - (void)addHeader
             // 结束刷新
             [vc.collectionView headerEndRefreshing];
         });
-    }];
+    } dateKey:@"collection"];
+    // dateKey用于存储刷新时间,也可以不传值,可以保证不同界面拥有不同的刷新时间
     
 #warning 自动刷新(一进入程序就下拉刷新)
     [self.collectionView headerBeginRefreshing];

+ 3 - 1
MJRefreshExample/MJRefreshExample/Classes/Controller/MJTableViewController.m

@@ -70,7 +70,9 @@ - (void)dealloc
 - (void)setupRefresh
 {
     // 1.下拉刷新(进入刷新状态就会调用self的headerRereshing)
-    [self.tableView addHeaderWithTarget:self action:@selector(headerRereshing)];
+//    [self.tableView addHeaderWithTarget:self action:@selector(headerRereshing)];
+    // dateKey用于存储刷新时间,可以保证不同界面拥有不同的刷新时间
+    [self.tableView addHeaderWithTarget:self action:@selector(headerRereshing) dateKey:@"table"];
 #warning 自动刷新(一进入程序就下拉刷新)
     [self.tableView headerBeginRefreshing];
     

+ 1 - 1
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeaderView.h

@@ -10,7 +10,7 @@
 
 @interface MJRefreshHeaderView : MJRefreshBaseView
 
-@property NSString *dateKey;
+@property (nonatomic, copy) NSString *dateKey;
 + (instancetype)header;
 
 @end

+ 7 - 6
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeaderView.m

@@ -35,10 +35,10 @@ - (UILabel *)lastUpdateTimeLabel
         [self addSubview:_lastUpdateTimeLabel = lastUpdateTimeLabel];
         
         // 2.加载时间
-        if(!self.dateKey){
-            self.lastUpdateTime = [[NSUserDefaults standardUserDefaults] objectForKey:MJRefreshHeaderTimeKey];
-        }else{
+        if(self.dateKey){
             self.lastUpdateTime = [[NSUserDefaults standardUserDefaults] objectForKey:self.dateKey];
+        } else {
+            self.lastUpdateTime = [[NSUserDefaults standardUserDefaults] objectForKey:MJRefreshHeaderTimeKey];
         }
     }
     return _lastUpdateTimeLabel;
@@ -93,11 +93,12 @@ - (void)setLastUpdateTime:(NSDate *)lastUpdateTime
     _lastUpdateTime = lastUpdateTime;
     
     // 1.归档
-    if(!self.dateKey){
-        [[NSUserDefaults standardUserDefaults] setObject:lastUpdateTime forKey:MJRefreshHeaderTimeKey];
-    }else{
+    if(self.dateKey){
         [[NSUserDefaults standardUserDefaults] setObject:lastUpdateTime forKey:self.dateKey];
+    }   else{
+        [[NSUserDefaults standardUserDefaults] setObject:lastUpdateTime forKey:MJRefreshHeaderTimeKey];
     }
+    [[NSUserDefaults standardUserDefaults] synchronize];
     
     // 2.更新时间
     [self updateTimeLabel];

+ 14 - 10
MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.m

@@ -54,6 +54,11 @@ - (MJRefreshFooterView *)footer {
  *  @param callback 回调
  */
 - (void)addHeaderWithCallback:(void (^)())callback
+{
+    [self addHeaderWithCallback:callback dateKey:nil];
+}
+
+- (void)addHeaderWithCallback:(void (^)())callback dateKey:(NSString*)dateKey
 {
     // 1.创建新的header
     if (!self.header) {
@@ -64,11 +69,8 @@ - (void)addHeaderWithCallback:(void (^)())callback
     
     // 2.设置block回调
     self.header.beginRefreshingCallback = callback;
-}
-
-- (void)addHeaderWithCallback:(void (^)())callback dateKey:(NSString*)dateKey
-{
-    [self addHeaderWithCallback:callback];
+    
+    // 3.设置存储刷新时间的key
     self.header.dateKey = dateKey;
 }
 
@@ -79,6 +81,11 @@ - (void)addHeaderWithCallback:(void (^)())callback dateKey:(NSString*)dateKey
  *  @param action 回调方法
  */
 - (void)addHeaderWithTarget:(id)target action:(SEL)action
+{
+    [self addHeaderWithTarget:target action:action dateKey:nil];
+}
+
+- (void)addHeaderWithTarget:(id)target action:(SEL)action dateKey:(NSString*)dateKey
 {
     // 1.创建新的header
     if (!self.header) {
@@ -90,11 +97,8 @@ - (void)addHeaderWithTarget:(id)target action:(SEL)action
     // 2.设置目标和回调方法
     self.header.beginRefreshingTaget = target;
     self.header.beginRefreshingAction = action;
-}
-
-- (void)addHeaderWithTarget:(id)target action:(SEL)action dateKey:(NSString*)dateKey
-{
-    [self addHeaderWithTarget:target action:action];
+    
+    // 3.设置存储刷新时间的key
     self.header.dateKey = dateKey;
 }