使用MJRefresh

导入MJRefresh


#import "ViewController.h"

#import "MJRefresh.h"

@interface ViewController ()


@property (nonatomic, strong)NSMutableArray *tableViewArray;


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    self.tableViewArray = [[NSMutableArray alloc] init];

    for (int i=0; i<10; i++) {

        [self.tableViewArray addObject:[NSString stringWithFormat:@"这是第%i条数据",i]];

    }

    self.tableView.delegate = self;

    self.tableView.dataSource = self;

    

   //开启刷新状态

    [self setupRefresh];

   

}


//开启刷新状态

-(void)setupRefresh{

    

    //1.给表添加下拉刷新

    [self.tableView addHeaderWithTarget:self action:@selector(headerRefreshing) dateKey:@"table"];

    //这是开始刷新

    [self.tableView headerBeginRefreshing];

    

    //2.上拉加载更多(进入刷新状态就会调用selffooterRereshing)

    [self.tableView addFooterWithTarget:self action:@selector(footerRefreshing)];

    

    //一些设置 设置文字

    self.tableView.headerPullToRefreshText = @"下拉可以刷新了";

    self.tableView.headerReleaseToRefreshText = @"松开马上刷新了";

    self.tableView.headerRefreshingText = @"刷新中……";

}


//下拉刷新所要执行的事件

-(void)headerRefreshing{

    

    //一般这里写的是网络请求,然后会有延迟,不会像现在刷新的那么快

    //1.添加数据

    [self.tableViewArray insertObject:@"这是刷新的数据" atIndex:0];

    [self.tableView reloadData];

    

    //这是结束刷新

    [self.tableView headerEndRefreshing];

}


//上拉刷新

-(void)footerRefreshing{

    //这个一般是提取缓存的数据

    // 1.添加假数据

    [self.tableViewArray insertObject:@"这是加载以前的数据" atIndex:_tableViewArray.count];

    [self.tableView reloadData];

    //2,结束刷新

    [self.tableView footerEndRefreshing];

}


#pragma mark - tableView delegate

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    return 1;

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    return _tableViewArray.count;

}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *cellID = @"cellID";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];

    if(cell == nil){

        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];

    }

    cell.textLabel.text = _tableViewArray[indexPath.row];

    return cell;

}




//时间队列,规定时间执行某个事件

-(void)performRefresh{

    //时间队列,规定时间执行某个事件

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        // 刷新表格

        [self.tableView reloadData];

        

        // (最好在刷新表格后调用)调用endRefreshing可以结束刷新状态

        [self.tableView headerEndRefreshing];

    });

}

/*

 

 如果在xcode6.0中有错误:

 选中项目 - Project - Build Settings-Apple LLVM 6.0-Preprocessing中的Enable Strict Checking of objc_msgsend calls 设置为 NO 即可

 */





@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值