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