右侧TableView的刷新细节

注意更新底部刷新控件footer的状态

  • 上拉刷新时,在刷新右侧的TableView表格,根据加载数据的情况更新底部刷新控件的状态
  • 下拉刷新时,在刷新右侧的TableView表格,根据加载数据的情况更新底部刷新控件的状态
  • 每次点击左边的分类表格,加载右侧TableView表格数据之前,更新底部刷新控件的状态
/*** 时刻监测footer的状态*/- (void)checkFooterState{AHRecommendCategory *cate = AHselectCategory;// 每次刷新右边数据时, 都控制footer显示或者隐藏self.userTableView.mj_footer.hidden = (cate.users.count == 0);// 让底部控件结束刷新if(cate.users.count == cate.total){ // 全部数据已经加载完毕[self.userTableView.mj_footer endRefreshingWithNoMoreData];} else { // 还没有加载完毕[self.userTableView.mj_footer endRefreshing];}
}

下拉刷新时要注意

  • 清楚以前右侧TableView的旧的用户数据
  • 重新加载新的数据
// 移除之前的所有旧数据
[cate.users removeAllObjects];// 重新加载数据
[cate.users addObjectsFromArray:users];

每次点击左边的分类表格时注意

  • 让顶部刷新控件和底部刷新控件结束刷新
  • 加载右侧TableView的数据

如果多次频繁点击左侧的分类表格,会多次频繁发送请求操作,这时服务器会依次返回响应数据,但我们要显示的是最后一次发送请求操作得到的数据,在这之前发送请求获得的数据没必要显示,这里怎么处理?

  • 新建一个字典属性params,保存请求参数 self.params = params
  • 在block中,看返回的请求参数paramsself.params是不是同一个,如果不是同一个的话,证明block中返回的请求不是最后一个请求,是之前的请求。
  • 如果不是最后一个请求的话,可以先把返回的数据处理一下,存起来,以便下次使用,但不刷新表格。
// 下拉刷新
- (void)loafNewUser{AHRecommendCategory *cate = AHselectCategory;cate.currentPage = 1;NSMutableDictionary *params = [NSMutableDictionary dictionary];params[@"a"] = @"list";params[@"c"] = @"subscribe";params[@"category_id"] = @(cate.id);params[@"page"] = @(cate.currentPage);self.params = params;[[AFHTTPSessionManager manager] GET:@"http://api.budejie.com/api/api_open.php" parameters:paramsprogress:^(NSProgress * _Nonnull downloadProgress) {// AHLog(@"%f",downloadProgress.fractionCompleted); // 下载进度} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSArray *users = [AHRecommendUser mj_objectArrayWithKeyValuesArray:responseObject[@"list"]];cate.total = [responseObject[@"total"] integerValue];// 移除之前的所有旧数据[cate.users removeAllObjects];// 重新加载数据[cate.users addObjectsFromArray:users];// 如果返回的不是最后一次请求,不刷新右边表格if(self.params != params) return;[self.userTableView reloadData];// 让顶部控件结束刷新[self.userTableView.mj_header endRefreshing];// 监测footer的状态[self checkFooterState];} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {if(self.params != params) return;[SVProgressHUD showErrorWithStatus:@"加载失败!"];// 让顶部控件结束刷新[self.userTableView.mj_header endRefreshing];}];
}

控制器被销毁时,停止所有的请求操作

- (void)dealloc{// 停止所有操作[self.manager.operationQueue cancelAllOperations];
}

百思不得其姐关注模块的推荐关注中 右侧TableView刷新细节相关推荐

  1. CSDN 有人通过用户推荐关注了你 到底是什么意思?

    今天上号正常发送今日的新文章,但是突然发现我的粉丝增多了,都是通过推荐关注,这是怎么回事? 于是在我的好奇心驱使下我去向csdn的客服进行了求证.于是我打开了手机版的CSDN,转人工服务,咨询人工客服 ...

  2. 微信支付后默认关注公众号与推荐关注公众号规则

    推荐关注规则指微信支付内部制定,推荐关注框和默认勾选能否出现的规则和判断逻辑,当前线上生效的逻辑有: 1.刷卡支付默认有推荐关注 2.九宫格业务默认不勾选推荐关注 3.粉丝数大于50W支付金额大于等于 ...

  3. 微博利用JS自动关注所有推荐关注

    微博利用JS自动关注所有推荐关注 网址 浏览器F12 完成 网址 新浪微博 比如: https://weibo.com/cng?is_hot=1 浏览器F12 var clicks=document. ...

  4. mysql 关注 表设计_mysql - 新浪微博中的关注功能是如何设计表结构的?

    问 题 新浪微博中,假如a关注了200个用户,300个用户关注了a,点解的时候会看到所有关注a或者a关注的用户,这种表结构是如何实现的? 解决方案 个人简单猜测,如有雷同,纯属巧合!有错误请指正! u ...

  5. 推荐场景中召回模型的演化过程

    导读:一般的推荐系统主要包括召回.排序和后续的业务机制 ( 重排序.多样性保证.用户体验保证等等 ) 这三大模块,而其中召回模块主要负责根据用户和 item 的特征,从众多待推荐的候选 item 中初 ...

  6. 深度学习技术在社会化推荐场景中的总结(附数据集)

    前言 不知道大家有没有感觉,在日常生活中用到推荐一词的时候经常是用在社交场景中的.到一个地方旅游让朋友推荐一下旅游景点,学习某一项技术的时候让朋友推荐一些有什么书可以看.在众多推荐系统的方向中,我觉得 ...

  7. 他山之石 | 知识图谱在美团推荐场景中的应用实践

    美团是一个生活服务领域的平台,需要大量知识来理解用户的搜索意图,同时对于商家侧我们也需要利用现有的知识对海量信息进行挖掘与提取,进而优化用户体验.今天分享的主题是知识图谱在美团推荐场景中的应用.主要包 ...

  8. GNN通俗笔记:图神经网络在推荐/广告中的应用

    原始视频:七月在线公开课<图神经网络在推荐广告场景中的应用>,课件可以打开视频页面下载 分享老师:推荐吴老师,推荐/广告算法专家,曾任部门算法负责人,年薪....不低 字幕校对:天保,全程 ...

  9. 【推荐实践】深度学习在省钱快报推荐排序中的应用与实践

    文章作者:省钱快报算法团队 编辑整理:Hoh Xil 内容来源:作者授权 出品平台:DataFun 导读:省钱快报是一家中小型综合类电商APP,近2年平台规模有了较大增长,AI在平台业务发展中发挥了巨 ...

  10. 直播 | 北邮博士生纪厚业:异质图神经网络在阿里推荐业务中的探索

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

最新文章

  1. 第三代DNA测序及其相关生物信息学技术发展概况
  2. STM32时钟配置方法详解
  3. 用java分组查elasticsearch
  4. 中统计字符串长度的函数_SQL Server中的字符串分割函数
  5. 2018年高二计算机试题,2018年上学期高二信息技术期末考试试题.pdf
  6. 计算机网络---HTTP状态码
  7. Python的系统管理_08_python_异常处理
  8. oracle的sql口令,Oracle数据库的SYS口令是什么?
  9. 读书笔记 effctive c++ Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value)...
  10. 最短路算法——Floyd-Warshall
  11. excel数据分组存到一个excel的多个sheet中
  12. 下载MySQL驱动程序
  13. 准备启动一个开源项目 - 技术族谱 - 先期利用Goolge云计算平台
  14. 信仰:生或者死——读海子、史铁生
  15. JavaScript 基础知识
  16. JAVA实现PCA主成分分析_主成分分析PCA(principal component analysis)原理
  17. 数字IC设计工程师的知识结构
  18. 贪吃蛇的使命之零基础入门贪吃蛇游戏(附演示地址)
  19. 关于 人工智能 的思考
  20. Maven项目中,添加依赖项后仍然出现找不到该jar包的解决方法

热门文章

  1. php deflate 解压,PHP编码gzdeflate与Golang解码DEFLATE
  2. 学习手机软件开发学什么,怎样学?
  3. dll 不是 PML.NET callable问题解决办法
  4. 文件服务 FTP Server
  5. 违章查询免费api接口代码
  6. 字节、快手、天弘基金等 :量化/算法工程师岗位【社招|校招|实习生】
  7. requestSubscribeMessage:fail can only be invoked by user TAP gesture 微信小程序调起订阅消息失败
  8. 微信向移动开放平台又迈进了一大步:微信开放平台更新
  9. 高仿富途牛牛-组件化(一)-支持页签拖拽、增删、小工具
  10. 为什么比同龄人显老?原来基因变异在作怪