当前位置:   article > 正文

iOS刷新框架MJRefresh使用_ios. 上拉结束隐藏mj_footer

ios. 上拉结束隐藏mj_footer

下面的代码:刷新方法,是无缝刷新,无须手动再次拖拽才进行数据加载,只要到了数据位置,即自动刷新

 

1、声明页码属性

  1. /** 当前页码 */
  2. @property (nonatomic, assign) NSInteger page;

2、注册tableview刷新方法

  1. /**
  2. * tableView刷新方法
  3. */
  4. -(void)setupTableViewRefresh{
  5. //刷新头部
  6. self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadTableViewNewData)];
  7. //改变透明度
  8. self.tableView.mj_header.automaticallyChangeAlpha = YES;
  9. //进来就开始刷新
  10. [self.tableView.mj_header beginRefreshing];
  11. //刷新尾部
  12. self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadTableViewMoreData)];
  13. //防止网络慢的时候,显示脚部刷新,进入隐藏
  14. self.tableView.mj_footer.hidden = YES;
  15. }

3、下拉刷新

  1. -(void)loadTableViewNewData{
  2. // 结束上拉
  3. [self.tableView.mj_footer endRefreshing];
  4. //page初始值
  5. self.page = 0;
  6. //参数
  7. NSMutableDictionary *params = [NSMutableDictionary dictionary];
  8. params[@"p"] = @(self.page);
  9. params[@"psize"] = @(15);
  10. // 发送请求
  11. [[BM_NetAPIManager sharedManager] rb_requestComment_WithParams:params andBlock:^(id responseData, NSError *error) {
  12. if (responseData)
  13. {
  14. if ([responseData[@"status"] intValue] == 1)
  15. {
  16. [self.topics removeAllObjects];
  17. self.topics = [RBHotCommentModel mj_objectArrayWithKeyValuesArray:responseData[@"data"]];
  18. // 刷新表格
  19. [self.tableView reloadData];
  20. /** 如果服务器返回了总数量,这段就不需要了,使用第5条写法
  21. //判断首次加载数据是否小于服务器返回数量
  22. if (self.topics.count < 15) {
  23. //结束刷新
  24. [self.tableView.mj_header endRefreshing];
  25. self.tableView.mj_footer.hidden = NO;
  26. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  27. return ;
  28. }
  29. */
  30. //结束刷新
  31. self.page++;
  32. }
  33. else
  34. {
  35. //没有获取到数据
  36. [self.tableView.mj_header endRefreshing];
  37. self.tableView.mj_footer.hidden = NO;
  38. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  39. return ;
  40. }
  41. }
  42. else
  43. {
  44. }
  45. //结束刷新
  46. [self.tableView.mj_header endRefreshing];
  47. self.tableView.mj_footer.hidden = NO;
  48. }];
  49. }

4、上拉刷新

  1. /**
  2. * 加载更多的帖子数据
  3. */
  4. - (void)loadTableViewMoreData{
  5. // 结束上拉
  6. [self.tableView.mj_header endRefreshing];
  7. // 参数
  8. NSMutableDictionary *params = [NSMutableDictionary dictionary];
  9. params[@"p"] = @(self.page);
  10. params[@"psize"] = @(15);
  11. // 发送请求
  12. [[BM_NetAPIManager sharedManager] rb_requestComment_WithParams:params andBlock:^(id responseData, NSError *error) {
  13. if (responseData)
  14. {
  15. if ([responseData[@"status"] intValue] == 1)
  16. {
  17. // 字典 -> 模型
  18. NSArray *newTopics = [RBHotCommentModel mj_objectArrayWithKeyValuesArray:responseData[@"data"]];
  19. //将新数据添加到 后面
  20. [self.topics addObjectsFromArray:newTopics];
  21. // 刷新表格
  22. [self.tableView reloadData];
  23. /** 如果服务器返回了总数量,这段就不需要了,使用第5条写法
  24. //如果下拉数据小于服务器返回数量,停止下拉刷新
  25. if (newTopics.count < 15) {
  26. [self.tableView.mj_footer endRefreshing];
  27. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  28. return ;
  29. }
  30. */
  31. self.page++;
  32. }
  33. else
  34. {
  35. }
  36. }
  37. else
  38. {
  39. }
  40. //结束刷新
  41. [self.tableView.mj_footer endRefreshing];
  42. }];
  43. }

5: 如果服务器返回来了总数量,刷新判断就好说了

  1. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  2. //刷新数据处理
  3. self.tableView.mj_footer.hidden = (self.dataArray.count == 0);
  4. if (self.dataArray.count == self.totalCount) {
  5. [self.tableView.mj_footer endRefreshingWithNoMoreData];
  6. }else{
  7. [self.tableView.mj_footer endRefreshing];
  8. }
  9. return self.dataArray.count;
  10. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/229264
推荐阅读
  

闽ICP备14008679号