本文將為大家闡明MJRefresh框架運用及闡明的相關內容,詳細內容請看上面
一. MJRefresh的類解釋.
1.MJRefreshComponent 一切刷新控件的基類別.(component: 成分,組件)
2.MJRefreshNormalHeader 默許的下拉刷新控件
3.MJRefreshAutoNormalFooter 默許的上拉刷新控件 下拉刷新控件自順應在頁面內容上面
4.MJRefreshAutoGifFooter 帶靜態圖的上拉加載控件 下拉刷新控件自順應在頁面內容上面
5.MJRefreshBackNormalFooter 默許的上拉刷新控件 下拉刷新控件不斷在屏幕底部
6.MJREfreshBackGifFooter 默許的上拉動畫刷新控件 下拉刷新控件不斷在屏幕底部
總結: 刷新控件分為: header和footer控件. 頭部和尾部刷新控件
刷新控件分為normal和gif形態. 普通形態和刷新控件和gif靜態圖的刷新控件
尾部刷新控件又分為: auto和back兩個形式 自順應尾部刷新控件地位和刷新控件地位在底部.
二.各個類中提供的內部辦法.
1.MJRefreshComponent
(1) beginRefreshing // 開端刷新,進入頁面想要自動刷新的時分調用.
isRefreshing // 能否正在刷新
endRefreshing // 完畢刷新,網絡懇求完畢的時分運用.
(2)MJRefreshState 刷新控件的形態
/** 上一次下拉刷新成功的時間 */ @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime;
(2)
/** 創立header */ + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; /** 創立header */ + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action;
3.MJRefreshFooter
(1)
/** 創立footer */ + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; /** 創立footer */ + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action;
(2)endRefreshingWithNoMoreData 提示沒有更少數據.
resetNoMoreData 重置沒有更少數據
(3)automaticallyHidden 自動依據有有數據來顯示或許隱藏(無數據就顯示,沒數據就隱藏.默許為NO)
三.詳細運用
1. 默許的刷新方式
頭部刷新控件: MJRefreshNormalHeader
尾部刷新控件:MJRefreshAutoNormalFooter
- (UITableView *)tableView { if (!_tableView) { self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; self.tableView.dataSource = self; self.tableView.delegate = self; MJRefreshGifHeader * header = [MJRefreshGifHeader headerWithRefreshingBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_header endRefreshing]; }); }]; NSMutableArray * arrayM = [NSMutableArray arrayWithCapacity:0]; for (int i = 0; i < 30; i ++) { UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"xz_flower_%d",i + 1]]; [arrayM addObject:image]; } // 設置普通形態下的動畫圖片 --> 運動的一張圖片 NSArray * normalImagesArray = @[[UIImage imageNamed:@"xz_flower_1"]]; [header setImages:normalImagesArray forState:MJRefreshStateIdle]; // 設置行將刷新形態的動畫圖片 [header setImages:arrayM forState:MJRefreshStatePulling]; // 設置正在刷新形態的動畫圖片 [header setImages:arrayM forState:MJRefreshStateRefreshing]; // 設置header self.tableView.mj_header = header; } return _tableView; }
- (UITableView *)tableView { if (!_tableView) { self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; self.tableView.dataSource = self; self.tableView.delegate = self; MJRefreshGifHeader * header = [MJRefreshGifHeader headerWithRefreshingBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_header endRefreshing]; }); }]; NSMutableArray * arrayM = [NSMutableArray arrayWithCapacity:0]; for (int i = 0; i < 30; i ++) { UIImage * image = [UIImage imageNamed:[NSString stringWithFormat:@"xz_flower_%d",i + 1]]; [arrayM addObject:image]; } NSArray * normalImagesArray = @[[UIImage imageNamed:@"xz_flower_1"]]; [header setImages:normalImagesArray forState:MJRefreshStateIdle]; [header setImages:arrayM forState:MJRefreshStatePulling]; [header setImages:arrayM forState:MJRefreshStateRefreshing]; // 隱藏時間 header.lastUpdatedTimeLabel.hidden = YES; // 隱藏形態 header.stateLabel.hidden = YES; // 設置header self.tableView.mj_header = header; } return _tableView; }
- (UITableView *)tableView { if (!_tableView) { self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; self.tableView.dataSource = self; self.tableView.delegate = self; MJRefreshNormalHeader * header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_header endRefreshing]; }); }]; // 設置文字 [header setTitle:@"下拉刷新" forState:MJRefreshStateIdle]; [header setTitle:@"更新" forState:MJRefreshStatePulling]; [header setTitle:@"Loading..." forState:MJRefreshStateRefreshing]; // 設置字體 header.stateLabel.font = [UIFont systemFontOfSize:15]; header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:12]; // 設置顏色 header.stateLabel.textColor = [UIColor redColor]; header.lastUpdatedTimeLabel.textColor = [UIColor redColor]; [header beginRefreshing]; self.tableView.mj_header = header; } return _tableView; }
- (UITableView *)tableView { if (!_tableView) { self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; self.tableView.dataSource = self; self.tableView.delegate = self; MJRefreshAutoNormalFooter * footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.tableView.mj_footer endRefreshing]; [self.tableView.mj_footer endRefreshingWithNoMoreData]; }); }]; self.tableView.mj_footer = footer; } return _tableView; }
6.自定義刷新控件
承繼MJRefreshHeader /MJRefreshGifHeader / MJRefreshAutoGifFooter /MJRefreshBackGifFooter /MJRefreshAutoFooter /MJRefreshBackFooter
#import "MJRefreshHeader.h" @interface MCDIYHeader : MJRefreshHeader @end
經過本文的學習希望對您理解和學習IOS開發的相關知識有一些好的協助.感激關注本站.我們將為您搜集更多更好的IOS開發教程.
【MJRefresh框架運用及闡明】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!