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

1、声明页码属性

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

2、注册tableview刷新方法

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

3、下拉刷新

-(void)loadTableViewNewData{// 结束上拉[self.tableView.mj_footer endRefreshing];//page初始值self.page = 0;//参数NSMutableDictionary *params = [NSMutableDictionary dictionary];params[@"p"] = @(self.page);params[@"psize"] = @(15);// 发送请求[[BM_NetAPIManager sharedManager] rb_requestComment_WithParams:params andBlock:^(id responseData, NSError *error) {if (responseData){if ([responseData[@"status"] intValue] == 1){[self.topics removeAllObjects];self.topics = [RBHotCommentModel mj_objectArrayWithKeyValuesArray:responseData[@"data"]];// 刷新表格[self.tableView reloadData];/**  如果服务器返回了总数量,这段就不需要了,使用第5条写法//判断首次加载数据是否小于服务器返回数量if (self.topics.count < 15) {//结束刷新[self.tableView.mj_header endRefreshing];self.tableView.mj_footer.hidden = NO;[self.tableView.mj_footer endRefreshingWithNoMoreData];return ;}*///结束刷新self.page++;}else{//没有获取到数据[self.tableView.mj_header endRefreshing];self.tableView.mj_footer.hidden = NO;[self.tableView.mj_footer endRefreshingWithNoMoreData];return ;}}else{}//结束刷新[self.tableView.mj_header endRefreshing];self.tableView.mj_footer.hidden = NO;}];
}

4、上拉刷新

/*** 加载更多的帖子数据*/
- (void)loadTableViewMoreData{// 结束上拉[self.tableView.mj_header endRefreshing];// 参数NSMutableDictionary *params = [NSMutableDictionary dictionary];params[@"p"] = @(self.page);params[@"psize"] = @(15);// 发送请求[[BM_NetAPIManager sharedManager] rb_requestComment_WithParams:params andBlock:^(id responseData, NSError *error) {if (responseData){if ([responseData[@"status"] intValue] == 1){// 字典 -> 模型NSArray *newTopics = [RBHotCommentModel mj_objectArrayWithKeyValuesArray:responseData[@"data"]];//将新数据添加到 后面[self.topics addObjectsFromArray:newTopics];// 刷新表格[self.tableView reloadData];/**  如果服务器返回了总数量,这段就不需要了,使用第5条写法//如果下拉数据小于服务器返回数量,停止下拉刷新if (newTopics.count < 15) {[self.tableView.mj_footer endRefreshing];[self.tableView.mj_footer endRefreshingWithNoMoreData];return ;}*/self.page++;}else{}}else{}//结束刷新[self.tableView.mj_footer endRefreshing];}];
}

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

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{//刷新数据处理self.tableView.mj_footer.hidden = (self.dataArray.count == 0);if (self.dataArray.count == self.totalCount) {[self.tableView.mj_footer endRefreshingWithNoMoreData];}else{[self.tableView.mj_footer endRefreshing];}return self.dataArray.count;
}

iOS刷新框架MJRefresh使用相关推荐

  1. 常用的iOS第三方框架

    转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与To ...

  2. iOS开源框架和项目总结

    github上关于iOS的各种开源项目集合(转) .entry-header UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh  ...

  3. ios 刷新遮罩遮罩_在Adobe XD中进行遮罩的3种方法

    ios 刷新遮罩遮罩 Are you new to Adobe XD? Or maybe you're just stuck on how to create a simple mask? Here ...

  4. IOS第三方框架集合

    简   注册 登录  添加关注 作者 xuejunjun 2015.06.06 17:39* 写了14057字,被17人关注,获得了116个喜欢 IOS第三方框架集合 字数6100 阅读17132 评 ...

  5. swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程

    swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 1.2.3  注册非免费苹果账号swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 免费的苹果账号在 ...

  6. Swift版iOS游戏框架Sprite Kit基础教程下册

    Swift版iOS游戏框架Sprite Kit基础教程下册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C  介绍:本教程是国内唯一的Swift版的Spritekit教程 ...

  7. iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序

    iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序 程序是为了实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.本章将以编写第一个Sprite Kit程序为 ...

  8. iOS游戏框架Sprite Kit基础教程——Swift版上册

    iOS游戏框架Sprite Kit基础教程--Swift版上册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C  介绍:本教程是国内唯一的Swift版的Spritekit ...

  9. 详解OS X和iOS图像处理框架Core Image

     详解OS X和iOS图像处理框架Core Image width="22" height="16" src="http://hits.sinaj ...

最新文章

  1. 【深度学习】解析神经网络中的数值稳定性、模型初始化和分布偏移(Pytorch)
  2. ubuntu16.04 英文环境安装中文输入法
  3. 软件项目开发计划书【申明:来源于网络】
  4. JavaScript 基础,登录前端验证
  5. c++ primer5th,习题12.24
  6. Grunt教程——安装Grunt
  7. 中小企业CRM评测-用户交互_易客
  8. 获取java 私有属性或 方法
  9. Geodatabase - 修改字段别名(Field Alias)
  10. vue 引入vue-resource给页面加点动态数据
  11. excel自动排班表_18个施工进度计划横道图,Excel版自动生成表,操作简单明了
  12. python-网络编程-tcp/ip认识(一)
  13. 12306 快速抢票购票程序
  14. python123用户登录c_写代码: 实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则登录失败。...
  15. cocoscreator数字增长动画
  16. RPC通信协议远程服务调用(25)Java全栈
  17. 阿里云无影研发负责人任晋奎:无影核心技术能力突破,打造云网端融合的全新体验
  18. jenkins-配置python
  19. 用了DISTINCT ,数据也重复
  20. HTML怎么制作镂空文字遮罩,用纯 CSS 实现镂空效果

热门文章

  1. 卡农?菜商?车手?话务员?“电诈”界的黑话知多少?
  2. python drf_067.Python框架Django之DRF视图类
  3. 路由器与静态路由配置命令(基础)
  4. 关于python函数参数的描述中、错误的是_以下关于函数参数的描述,正确的是
  5. 离线使用ElementUI
  6. Linux命令——uname
  7. Qt实战案例(13)(序)——以QToolButton为例介绍Qt界面外观设计
  8. linux下maven配置
  9. uniapp + vue 实现色弱测试小游戏
  10. jQuery循环赋值 取值