MJRefresh使用简介
主要功能:下拉刷新、上拉加载更多,文末有github及demo地址。
=============使用方法1===============
#import "UIScrollView+MJRefresh.h"//下拉刷新
1.添加下拉刷新
[self.endTableView addHeaderWithCallback:^
{
//此处获取刷新数据
[self requestEnd:@"1" hudStr:nil];
}];
在刷新成功后(获取数据成功、失败、超时等),停止下拉刷新
[self.endTableView headerEndRefreshing];
2.上拉加载更多
[self.endTableView addFooterWithCallback:^
{
//此处获取更多数据
[self requestEnd:@"1" hudStr:nil];
}];
成功后(获取数据成功、失败、超时等),停止上拉加载更多
[self.endTableView footerEndRefreshing];
注:在需要刷新的页面消失时最好加上停止刷新的方法
- (void)viewWillDisappear:(BOOL)animated
{
[self.endTableView headerEndRefreshing];
[self.endTableView footerEndRefreshing];
}
================使用方法2================
1.导入第三方(省略)
2.引入头文件
#import "MJRefresh.h"
3.添加下拉刷新(多数情况是在tableview中的viewDidLoad方法中添加)
//添加一个下拉刷新头部组件
self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
//如果数据是通过网络请求获得,在此处再次获取数据
//先将之前的数据移除掉
[self.messages removeAllObjects];
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self.messageManager getMessageWithCount:10 Page:1 completionHandle:^(NSString *success, NSArray *message) {
if ([success isEqualToString:@"0"]) {
self.messages = [NSMutableArray arrayWithArray:message];
[self.tableView reloadData];
}else{
NSLog(@"失败");
}
}];
//通知主线程更新UI界面
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
});
//结束刷新
[self.tableView.mj_header endRefreshing];
}];
4.添加上拉加载更多
//添加上拉加载更多
self.tableView.mj_footer = [MJRefreshAutoFooter footerWithRefreshingTarget:self refreshingAction:@selector(tapFooter)];
5.tapFooter方法实现
#pragma mark 上拉加载方法
- (void)tapFooter{
static int flag = 1;
flag ++;//每次上拉都加载新的数据
dispatch_async(dispatch_get_global_queue(0, 0), ^{
//请求更多数据
[self.messageManager getMessageWithCount:10 Page:flag completionHandle:^(NSString *success, NSArray *message) {
if ([success isEqualToString:@"0"]) {
for (int i = 0; i < 10; i ++) {
[self.messages addObject:message[i]];
}
}else{
NSLog(@"失败");
}
}];
//通知主线程更新UI界面
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
});
//结束刷新
[self.tableView.mj_footer endRefreshing];
}
GitHub第三方下载地址
https://github.com/CoderMJLee/MJRefresh
Coding的demo的下载地址
https://coding.net/u/Panzz/p/MJRefreshDemo/git