码迷,mamicode.com
首页 > 移动开发 > 详细

iOS下拉刷新

时间:2015-05-13 00:50:24      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

在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];
    }];
}

 

iOS下拉刷新

标签:

原文地址:http://www.cnblogs.com/jys509/p/4499023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!