使用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
#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
相关文章推荐
- BroadcastReceiver的实现步骤
- 基础才是重中之重~AutoMapper为已有目标对象映射
- isIOS9
- 【iOS开发】更改来自友盟社会化组件
- Cloud Design Pattern - Queue-Based Load Leveling(队列负载均衡)
- Java集合---ArrayList的实现原理
- 例说android静态JNI调用C/C++代码——HelloWorld
- PTHREAD_MUTEX_INITIALIZER http://blog.csdn.net/yasi_xi/article/details/19197203
- 【页游】侠物语 美术资源加密分析
- (PHP)正则表达式-preg_match和preg_match_all()的用法
- Windows 10 10586 升级
- 亿级Web系统搭建——单机到分布式集群
- Cocos2D旋转炮塔到指定角度(三)
- node.js回调函数之阻塞调用与非阻塞调用
- Cocos2D旋转炮塔到指定角度(三)
- Cocos2D旋转炮塔到指定角度(三)
- GC回收机制
- linux命令行设置时间
- ajax请求或者页面需要缓存,代码如下
- 数据结构之约瑟夫循环