在iOS开发中,我们经常要用到下拉刷新来加载新的数据。iOS原生就带有该方法,下面就iOS自带的下拉刷新方法来简单操作。
1、在TableView里,一打开软件,我们就调用下拉刷新事件。
- (void)viewDidLoad { [super viewDidLoad]; // 集成刷新控件 [self setupRefresh]; } /** * 集成下拉刷新 */ -(void)setupRefresh { //1.添加刷新控件 UIRefreshControl *control=[[UIRefreshControl alloc]init]; [control addTarget:self action:@selector(refreshStateChange:) forControlEvents:UIControlEventValueChanged]; [self.tableView addSubview:control]; //2.马上进入刷新状态,并不会触发UIControlEventValueChanged事件 [control beginRefreshing]; // 3.加载数据 [self refreshStateChange:control]; }
2、接下来,我们就要实现 refreshStateChange 这个方法,在里面显示数据和关闭下拉刷新。
/** * UIRefreshControl进入刷新状态:加载最新的数据 */ -(void)refreshStateChange:(UIRefreshControl *)control { // 3.发送请求 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; [mgr GET:@"https://api.weibo.com/2/statuses/public_timeline.json" parameters:nil success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject){ //1.获取数据,处理数据,传递数据给tableView,如: // 将最新的微博数据,添加到总数组的最前面 // NSRange range = NSMakeRange(0, newStatuses.count); // NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range]; // [self.statuses insertObjects:newStatuses atIndexes:set]; //2.刷新表格 [self.tableView reloadData]; // 3. 结束刷新 [control endRefreshing]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 结束刷新刷新 ,为了避免网络加载失败,一直显示刷新状态的错误 [control endRefreshing]; }]; }
时间: 2024-10-10 13:34:02