您的位置:首页 > 其它

使用MJRefresh

2015-11-13 14:55 363 查看
导入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.上拉加载更多(进入刷新状态就会调用self的footerRereshing)
[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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: