一直覺(jué)得自己寫(xiě)的不是技術(shù)辆布,而是情懷瞬矩,一個(gè)個(gè)的教程是自己這一路走來(lái)的痕跡》媪幔靠專業(yè)技能的成功是最具可復(fù)制性的景用,希望我的這條路能讓你們少走彎路,希望我能幫你們抹去知識(shí)的蒙塵惭蹂,希望我能幫你們理清知識(shí)的脈絡(luò)伞插,希望未來(lái)技術(shù)之巔上有你們也有我。
稍微簡(jiǎn)單的記錄一下MJRefresh的使用盾碗,其實(shí)網(wǎng)上有好幾篇文章都寫(xiě)的比較好多的媚污,有空我會(huì)按照他們的文章去用一下,完善一下廷雅。
MJRefresh簡(jiǎn)單使用
MJRefresh超詳細(xì)講解
# MJRefresh-簡(jiǎn)單使用
# MJRefresh超詳細(xì)講解
下面的代碼是自己一般開(kāi)發(fā)中會(huì)用到的耗美,起碼自己用過(guò),心里面比較踏實(shí)航缀。
下.gif
下拉刷新
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
[self.viewModel getUserCenter];
}];
[header setTitle:@"加載數(shù)據(jù)完成" forState:MJRefreshStateNoMoreData];
[header setTitle:@"正在加載數(shù)據(jù)" forState:MJRefreshStateRefreshing];
[header setTitle:@"刷新完畢" forState:MJRefreshStatePulling];
header.lastUpdatedTimeLabel.hidden = YES;
self.collectionView.mj_header = header;
//寫(xiě)在成功失敗請(qǐng)求數(shù)據(jù)回來(lái)
[subVC.tableview.mj_header endRefreshing];
上.gif
上拉加載更多
@property (nonatomic,assign) NSInteger page;
@property (nonatomic,strong) MJRefreshAutoNormalFooter *footer;
- (NSInteger)page{
if (_page == 0) {
_page = 1;
}
return _page;
}
self.footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
[self.footer setTitle:@"已顯示全部?jī)?nèi)容" forState:MJRefreshStateNoMoreData];
self.tableview.mj_footer = self.footer;
#pragma mark 上拉加載更多
-(void)loadMoreData{
if (self.viewModel.guessModel.like_goods_list.count >= self.viewModel.guessModel.like_goods_qty) {
[self.collectionView.mj_footer endRefreshing];
self.tableview.mj_footer.hidden = YES;
return;
}
self.page += 1;
[self.viewModel getMoreHomeGuessPage:self.page];
}
#pragma mark 專用上拉加載更多代理
- (void)HomeViewModel:(HomeViewModel *)view successGuessModel:(HomeGuessBaseModel *)model{
[self.collectionView.mj_footer endRefreshing];
[self.collectionView reloadData];
}
//有些公司的接口沒(méi)有返回總數(shù)和頁(yè)數(shù)總是的可以這么寫(xiě)
@property (nonatomic,assign) NSInteger page;
@property (nonatomic,strong) MJRefreshAutoNormalFooter *footer;
- (NSInteger)page{
if (_page == 0) { _page = 1; }
return _page;
}
self.footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];
self.tableview.mj_footer = self.footer;
#pragma mark 上拉加載更多
-(void)loadMoreData{
self.page += 1;
[self.viewModel getMoreReplysWithCid:self.cid withPage:self.page withPageSize:0 withOrderby:[NSString new] withSort:[NSString new]];
}
#pragma mark - viewModelDelegate - failMore
-(void)commentListViewModel:(CommentListViewModel *)viewModel failMore:(NSString *)value{
self.tableview.mj_footer = self.footer;
[self.tableview.mj_footer endRefreshing];
[self.tableview.mj_footer endRefreshingWithNoMoreData];
[self.tableview reloadData];
}
其實(shí)寫(xiě)這篇文章的一個(gè)主要目的就是為了當(dāng)上拉加載全部數(shù)據(jù)的時(shí)候怎么顯示 已顯示全部數(shù)據(jù)之類的提示商架。
首先在在啟動(dòng)的時(shí)候設(shè)置
[self.footer setTitle:@"已顯示全部?jī)?nèi)容" forState:MJRefreshStateNoMoreData];
然后當(dāng)上拉加載更多的數(shù)據(jù)回來(lái)發(fā)現(xiàn)沒(méi)有數(shù)據(jù)的時(shí)候代理出來(lái)控制器之后執(zhí)行下面的這句話
[self.tableview.mj_footer endRefreshingWithNoMoreData];