美文网首页
iOS开发 MJRefresh加载数据的简单使用

iOS开发 MJRefresh加载数据的简单使用

作者: 大冲哥 | 来源:发表于2017-06-06 16:25 被阅读162次

    对于加载数据,感觉最容易上手的就是MJRefresh这个加载第三方库了。

    记得将MJRefresh导入工程里面,不然就尴尬了。

    简单记载一下MJRefresh做分页,毕竟现在用的还是很少:

    记得在初始化TableView的时候加入

    上拉加载

    _tableView.mj_footer = [MJRefreshAutoNormalFooterfooterWithRefreshingBlock:^{//页码weakSelf.page++;        [weakSelf getMoveDataSource];    }];

    以及

    下拉刷新

    _tableView.mj_header = [MJRefreshNormalHeaderheaderWithRefreshingBlock:^{//需要将页码设置为1weakSelf.page =1;        [weakSelf getDataSource];    }];

    保证自己在进入界面的时候就要开始加载

    感觉一般的项目中,直接就在viewDidLoad中加入一行刷新代码,当然,如果有其他操作的话,也可以加入到其他函数中间去。

    [_tableView.mj_header beginRefreshing];

    数据加载完毕之后回调函数里参照

    网络请求的时候本人习惯是用weakSelf.tableView.mj_footer.hidden来显示是否有更多值,一般没有数据之后直接是将他设置为YES把它隐藏起来。

    不过MJRefresh有一个数据加载完的样式

    [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];

    下拉刷新

    #pragma mark 刷新-(void)getDataSource{***参数*** block:^(返回值,NSError*error) {//先判断有没有Errorif(error ==nil) {//请求成功NSArray* list = 取值if(list.count>0) {                [weakSelf.tableViewDataSource 赋值];//刷新界面[weakSelf.tableView reloadData];//注意将TableView的mj_header停止[weakSelf.tableView.mj_header endRefreshing];//PAGESIZE为分页个数if(weakSelf.tableViewDataSource.count < PAGESIZE) {//可以使用endRefreshingWithNoMoreData告诉用户数据请求完成,不过本人习惯将他隐藏起来,看需求了// [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];weakSelf.tableView.mj_footer.hidden =YES;                }else{                    weakSelf.tableView.mj_footer.hidden =NO;                }            }else{//无数据 也是要停止刷新的[weakSelf.tableView.mj_header endRefreshing];// [weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];weakSelf.tableView.mj_footer.hidden =YES;//记得提示没有数据}        }else{//请求错误的话也是要将列表更新一次weakSelf.tableViewDataSource = [NSMutableArrayarray];            [weakSelf.tableView reloadData];//  [weakSelf.tableView.mj_header endRefreshing];weakSelf.tableView.mj_footer.hidden =YES;        }    }];}

    上拉加载

    #pragma mark 加载-(void)getMoveDataSource{  ****参数***** block:^(返回值,NSError*error) {if(error ==nil) {//请求成功NSArray*list = 取值;if(list.count >0) {                [weakSelf.tableViewDataSource 赋值];                [weakSelf.tableView reloadData];                [weakSelf.tableView.mj_footer endRefreshing];//这里做下判断 如果页码*每个页数不正常的话就代表数据不够多了,就要把上拉加载隐藏了。if(weakSelf.tableViewDataSource.count < PAGESIZE*_page) {//[weakSelf.tableView.mj_footer endRefreshingWithNoMoreData];weakSelf.tableView.mj_footer.hidden =YES;                }            }else{//无数据[weakSelf.tableView.mj_header endRefreshing];                weakSelf.tableView.mj_footer.hidden =YES;            }        }else{            [weakSelf.tableView.mj_footer endRefreshing];            weakSelf.tableView.mj_footer.hidden =YES;        }    }];}

    相关文章

      网友评论

          本文标题:iOS开发 MJRefresh加载数据的简单使用

          本文链接:https://www.haomeiwen.com/subject/puxnfxtx.html