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

对于加载数据,感觉最容易上手的就是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;        }    }];}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于加载数据,感觉最容易上手的就是MJRefresh这个加载第三方库了。 记得将MJRefresh导入工程里面,不...
    一年影绰阅读 6,440评论 1 9
  • MJRefresh是李明杰老师的作品,到现在已经有9800多颗star了,是一个简单实用,功能强大的iOS下拉刷新...
    Style_mao阅读 679评论 1 2
  • 下拉刷新01-默认 self.tableView.header = [MJRefreshNormalHeader ...
    seventhboy阅读 687评论 0 0
  • 下拉刷新01-默认 self.tableView.header = [MJRefreshNormalHeader ...
    JACK_岩阅读 2,357评论 2 1
  • 儿时 你一针一针 将溢出屋顶的青烟拢起 织成人间烟火的丰盛 我是三月的风筝 你的目光如线 引我去的 都是无际的晴天...
    霁青青霁阅读 350评论 0 3