IOS博客项目搭建-11-刷新数据UIRefreshControl


IOS自带刷新数据的方法UIRefreshControl,该方法能够下拉刷新获取数据json


在加载view的时候,就调用刷新控件的方法来获取新数据:
api

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // 0.集成刷新控件 =====【2016-04-12 新增刷新控件方法】======
    [self setupRefreshView];
    
    // 1.设置导航栏的内容
    [self setupNavBar];
    
    // 2.加载微博数据
    [self setupStatusData];
}


刷新控件的具体方法:数组

/**
 *  集成刷新控件【2016-04-12】
 */
- (void)setupRefreshView
{
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    
    // 监听刷新控件的状态改变
    [refreshControl addTarget:self action:@selector(refreshControlStateChange:) forControlEvents:UIControlEventValueChanged];
    
    [self.tableView addSubview:refreshControl];
}


-(void)refreshControlStateChange:(UIRefreshControl*)refreshControl
{
    // 刷新数据(向新浪获取更新的微博数据)
    
    // 1.建立请求管理对象
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 2.封装请求参数
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"access_token"] = [IWAccountTool account].access_token;
    params[@"count"] = @5;
    
    // 取出数组第一个元素
    IWStatusFrame *statusFrame = self.statusFrames[0];
    // 加载ID比since_id大的微博
    params[@"since_id"] = statusFrame.status.idstr;
    
    
    // 3.发送请求
    [mgr GET:@"https://api.weibo.com/2/statuses/home_timeline.json" parameters:params
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         // 将字典数组转为模型数组(里面放的就是IWStatus模型)
         NSArray *statusArray = [IWStatus objectArrayWithKeyValuesArray:responseObject[@"statuses"]];
         // 建立frame模型对象
         NSMutableArray *statusFrameArray = [NSMutableArray array];
         for (IWStatus *status in statusArray) {
             //              if (status.pic_urls.count == 9) {
             //                  NSMutableArray *tempArray = [NSMutableArray array];
             //                  for (int i = 0; i<4; i++) {
             //                      [tempArray addObject:status.pic_urls[i]];
             //                  }
             //                  status.pic_urls = tempArray;
             //              }
             IWStatusFrame *statusFrame = [[IWStatusFrame alloc] init];
             // 传递微博模型数据
             statusFrame.status = status;
             [statusFrameArray addObject:statusFrame];
         }
         // 赋值
         // 将最新的数据追加到旧数据的最前面
         // 旧数据:self.statusFrames
         // 新数据:statusFrameArray
         NSMutableArray *tempArray = [NSMutableArray array];
         [tempArray addObjectsFromArray:statusFrameArray];
         [tempArray addObjectsFromArray:self.statusFrames];
         self.statusFrames = tempArray;
         
         
         // 刷新表格
         [self.tableView reloadData];
         
         // 让刷新控件中止显示菊花
         [refreshControl endRefreshing];
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         
         // 让刷新控件中止显示菊花
          [refreshControl endRefreshing];
     }];

}


以上的代码即为调用系统自带的方法来刷新获取数据。url

相关文章
相关标签/搜索