码迷,mamicode.com
首页 > 其他好文 > 详细

UITableableview上拉下拉刷新

时间:2015-03-20 16:23:24      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:uitableview刷新

#import "ViewController.h"

//加入引用的头文件

#import "UIView+MJExtension.h"

#import "MJRefresh.h"



static const CGFloat MJDuration = 2.0;


@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>


@property (nonatomic,strong)UITableView *tableView;


@end


@implementation ViewController


#pragma mark UITableView + 下拉刷新 动画图片

- (void)example02

{

    // 添加动画图片的下拉刷新

    // 设置回调(一旦进入刷新状态,就调用targetaction,也就是调用selfloadNewData方法)

    [self.tableView addGifHeaderWithRefreshingTarget:self refreshingAction:@selector(loadNewData)];

    

    // 设置普通状态的动画图片

    NSMutableArray *idleImages = [NSMutableArray array];

    for (NSUInteger i = 1; i<=60; i++) {

        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_anim__000%zd", i]];

        [idleImages addObject:image];

    }

    [self.tableView.gifHeader setImages:idleImages forState:MJRefreshHeaderStateIdle];

    

    // 设置即将刷新状态的动画图片(一松开就会刷新的状态)

    NSMutableArray *refreshingImages = [NSMutableArray array];

    for (NSUInteger i = 1; i<=3; i++) {

        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];

        [refreshingImages addObject:image];

    }

    [self.tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStatePulling];

    

    // 设置正在刷新状态的动画图片

    [self.tableView.gifHeader setImages:refreshingImages forState:MJRefreshHeaderStateRefreshing];

    // 在这个例子中,即将刷新 正在刷新 用的是一样的动画图片

    

    // 马上进入刷新状态

    [self.tableView.gifHeader beginRefreshing];

    

    // 此时self.tableView.header == self.tableView.gifHeader

}


#pragma mark UITableView + 上拉刷新 动画图片

- (void)example12

{

    // 添加动画图片的上拉刷新

    // 设置回调(一旦进入刷新状态,就调用targetaction,也就是调用selfloadMoreData方法)

    [self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

    

    // 设置正在刷新状态的动画图片

    NSMutableArray *refreshingImages = [NSMutableArray array];

    for (NSUInteger i = 1; i<=3; i++) {

        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"dropdown_loading_0%zd", i]];

        [refreshingImages addObject:image];

    }

    self.tableView.gifFooter.refreshingImages = refreshingImages;

    

    // 此时self.tableView.footer == self.tableView.gifFooter

}


#pragma mark - 数据处理相关

#pragma mark 下拉刷新数据

- (void)loadNewData

{

    

    // 1.模拟2秒后刷新表格UI(真实开发中,可以移除这段gcd代码)

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

        // 刷新表格

        [self.tableView reloadData];

        

        // 拿到当前的下拉刷新控件,结束刷新状态

        [self.tableView.header endRefreshing];

    });

}


#pragma mark 上拉加载更多数据

- (void)loadMoreData

{

    // 1.模拟2秒后刷新表格UI(真实开发中,可以移除这段gcd代码)

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

        // 刷新表格

        [self.tableView reloadData];

        

        // 拿到当前的上拉刷新控件,结束刷新状态

        [self.tableView.footer endRefreshing];

    });

}


- (void)viewDidLoad {

    [super viewDidLoad];

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

    

    _tableView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];

    _tableView.delegate = self;

    _tableView.dataSource = self;

    [self.view addSubview:_tableView];

    

    [self example02];

    [self example12];

}




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

{

    return 14;

}


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

{

    static NSString *ID = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

    if (cell == nil) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];

    }

    

    cell.textLabel.text = @"你好!";;

    

    return cell;

}



@end


//MJRefresh刷新控件的链接

https://github.com/CoderMJLee/MJRefresh.git


UITableableview上拉下拉刷新

标签:uitableview刷新

原文地址:http://blog.csdn.net/huanghaiyan_123/article/details/44493007

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