記錄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;//隱藏狀態