|
iOS UIScrollView
的下拉刷新和上拉加载的实现
下面我简单的说一说iOS UIScrollView
的下拉刷新和上拉加载的实现。
首先导入第三方库:
MJRefresh
添加头文件:
#import "MJRefresh.h"
添加代理:
@interface
ViewController ()<UIScrollViewDelegate>
声明全局变量:
@property (nonatomic,
strong) UIScrollView *myScrollView;//滚动视图
@property (nonatomic,
assign) NSInteger page;//当前页数
懒加载创建myScrollView:
- (UIScrollView *) myScrollView{
if (!_myScrollView) {
UIScrollView *myScrollView = [[UIScrollView
alloc]initWithFrame:CGRectMake(0,
64, self.view.frame.size.width,
self.view.frame.size.height-64)];
myScrollView.backgroundColor = [UIColor
whiteColor];
myScrollView.delegate =
self;
//如果你导入的MJRefresh库不是最新的库,就用下面的方法创建下拉刷新和上拉加载事件
myScrollView.header = [MJRefreshNormalHeader
headerWithRefreshingTarget:self
refreshingAction:@selector(headRefresh)];
myScrollView.footer = [MJRefreshAutoNormalFooter
footerWithRefreshingTarget:self
refreshingAction:@selector(footerRefresh)];
//如果你导入的MJRefresh库是最新的库,就用下面的方法创建下拉刷新和上拉加载事件
myScrollView.mj_header = [MJRefreshNormalHeader
headerWithRefreshingTarget:self
refreshingAction:@selector(headRefresh)];
myScrollView.mj_footer = [MJRefreshAutoNormalFooter
footerWithRefreshingTarget:self
refreshingAction:@selector(footerRefresh)];
self.myScrollView = myScrollView;
}
return
_myScrollView;
}
#pragma mark - 下拉刷新
- (void)headRefresh{
self.page =
1;
[self
getData];
}
#pragma mark - 上拉加载
- (void)footerRefresh{
self.page ++;
[self
getData];
}
#pragma mark - 请求数据
- (void)getData{
//当请求数据成功或失败后,如果你导入的MJRefresh库不是最新的库,就用下面的方法结束下拉刷新和上拉加载事件
[self.myScrollView.header
endRefreshing];
[self.myScrollView.footer
endRefreshing];
//如果已经加载到最后一页
[self.myScrollView.footer
noticeNoMoreData];
//当请求数据成功或失败后,如果你导入的MJRefresh库是最新的库,就用下面的方法结束下拉刷新和上拉加载事件
[self.myScrollView.mj_header
endRefreshing];
[self.myScrollView.mj_footer
endRefreshing];
//如果已经加载到最后一页
[self.myScrollView.mj_footer
endRefreshingWithNoMoreData];
}
到这里,你就实现了UIScrollView
的下拉刷新和上拉加载
|