记录MJRefresh学习,比较基础,大神请绕路
MJRefresh 最新版3.1.10目录如下(继承关系)
使用:
1、cocoa pod导入MJRefresh框架
在ViewController里创建一个tableView设置代理等
self.tableView = [[UITableView alloc]initWithFrame:self.view.frame];
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.view addSubview:self.tableView];
2.刷新
第一种:
//用MJRefreshStateHeader刷新
- (void)reFreshStateHeader{
MJRefreshStateHeader *header = [MJRefreshStateHeader headerWithRefreshingBlock:^{
NSLog(@"刷新");
[self performSelector:@selector(delayFunction) withObject:self afterDelay:3.f];
}];
/**
MJRefreshStateIdle = 1, 普通闲置状态
MJRefreshStatePulling, 松开就可以进行刷新的状态
MJRefreshStateRefreshing, 正在刷新中的状态
MJRefreshStateWillRefresh, 即将刷新的状态
MJRefreshStateNoMoreData 所有数据加载完毕,没有更多的数据了
*/
//常用下面三种提示
[header setTitle:@"普通闲置状态" forState:MJRefreshStateIdle];
[header setTitle:@"松开就可以进行刷新的状态" forState:MJRefreshStatePulling];
[header setTitle:@"正在刷新中的状态" forState:MJRefreshStateRefreshing];
// [header setTitle:@"即将刷新的状态" forState:MJRefreshStateWillRefresh];
// [header setTitle:@"所有数据加载完毕,没有更多的数据了" forState:MJRefreshStateNoMoreData];
self.tableView.mj_header = header;
}
可以调整刷新提示的位置和内容
/** 文字距离圈圈、箭头的距离 */
@property (assign, nonatomic) CGFloat labelLeftInset;
/** 显示刷新状态的label */
@property (weak, nonatomic, readonly) UILabel *stateLabel;
/** 设置state状态下的文字 */
- (void)setTitle:(NSString *)title forState:(MJRefreshState)state;
第二种
//用MJRefreshNormalHeader
- (void)refreshNormalHeader{
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
NSLog(@"正在刷新中。。。");
[self performSelector:@selector(delayFunction) withObject:self afterDelay:3.f];
}];[header setTitle:@"普通闲置状态" forState:MJRefreshStateIdle];
[header setTitle:@"松开就可以进行刷新的状态" forState:MJRefreshStatePulling];
[header setTitle:@"正在刷新中的状态" forState:MJRefreshStateRefreshing];
/*
UIActivityIndicatorViewStyleWhiteLarge,
UIActivityIndicatorViewStyleWhite,
UIActivityIndicatorViewStyleGray __TVOS_PROHIBITED,
*/
header.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;//设置菊花的样式
self.tableView.mj_header = header;
}
第三种
//用MJRefreshGifHeader
- (void)refreshGiflHeader{
MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingBlock:^{
NSLog(@"正在刷新中。。。");
[self performSelector:@selector(delayFunction) withObject:self afterDelay:3.f];
}];
[header setTitle:@"普通闲置状态" forState:MJRefreshStateIdle];
[header setTitle:@"松开就可以进行刷新的状态" forState:MJRefreshStatePulling];
[header setTitle:@"正在刷新中的状态" forState:MJRefreshStateRefreshing];
self.tableView.mj_header = header;
}
//设置动画显示 images数组存放顺序播放的图片
- (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state;
- (void)setImages:(NSArray *)images forState:(MJRefreshState)state;
还有一些属性
// header.lastUpdatedTimeLabel.hidden = YES;//隐藏时间
// header.stateLabel.hidden = YES;//隐藏状态