iOS开发tableview二级联动的细节实现中注意的细节总结

首先说网络慢带来的数据显示问题
可以通过判断请求参数是否一致来刷新tableview。
SJBCategaryModel * categaryModel = self.categarys[CategarySelectRow];
NSMutableDictionary * params = [NSMutableDictionary dictionary];
categaryModel.currentPage = 1;
params[@"a"] = @"list";
params[@"c"] = @"subscribe";
params[@"category_id"] = @(categaryModel.id);
params[@"page"] = @(categaryModel.currentPage);
self.params = params;
[self.manager GET:Main_URL parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (self.params != params) return;
[categaryModel.userArrM removeAllObjects];
for (int i=0; i<[responseObject[@"list"] count]; i++) {
SJBUserModel * model = [[SJBUserModel alloc] init];
[model setValuesForKeysWithDictionary:responseObject[@"list"][i]];
[categaryModel.userArrM addObject:model];
}
categaryModel.total = [responseObject[@"total"] integerValue];
[self.userTableView reloadData];
[self.userTableView.mj_header endRefreshing];
[self checkTableFooterState];
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
[self.userTableView.mj_header endRefreshing];
}];
上啦加载时,footer显示不一致的问题
if (!self.categarys.count) {
return;
}
SJBCategaryModel * categaryModel = self.categarys[CategarySelectRow];
self.userTableView.mj_footer.hidden = (categaryModel.userArrM.count == 0);
if (categaryModel.userArrM.count == categaryModel.total) {
[self.userTableView.mj_footer endRefreshingWithNoMoreData];
}else{
[self.userTableView.mj_footer endRefreshing];
}
如果请求的数据的数量与总量相等就显示没有更多的数据,若小于总量就显示点击或上拉加载更多的数据。

iOS开发tableview二级联动的细节实现中注意的细节总结的更多相关文章
- iOS开发tableView去掉顶部上部空表区域
tableview中的第一个cell 里上部 有空白区域,大概64像素 在viewDidLoad中加入如下代码 self.automaticallyAdjustsScrollViewInsets = ...
- iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建 一.实现效果 说明:该示例在storyboard中使用动态单元格来完成. 二.实现 1.项目文件结构 ...
- iOS开发几年了,你清楚OC中的这些东西么!!!?
iOS开发几年了,你清楚OC中的这些东西么!!!? 前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1 ...
- IOS开发问题录:如何在Swift中引入Head文件?
最近在学习IOS开发,从一个简单的登录开始,逐步解决了一个网络访问.获取控件值等问题,遇到了信息加密的问题. 做为IOS的入门者,信息加密需要解决如下几个问题: 1.IOS的MD5加密有没有固定函数, ...
- iOS开发——UI篇&文字渐变效果:图层中的mask属性
文字渐变效果:图层中的mask属性 本次文章,主要讲述的是图层中的mask属性,利用它,可以做出文字渐变效果! 一.文字渐变效果: 二.文字渐变实现思路: 1.创建一个颜色渐变层,渐变图层跟文字控件一 ...
- iOS开发几年了,你清楚OC中的这些东西么1
前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1.2发布后就正式并且一直都使用了swift进行iOS ...
- iOS开发调试技巧总结(持续更新中)
作者:乞力马扎罗的雪 原文 对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不 ...
- [IOS 开发] TableView、多个TableViewCell、自定义Cell、Cell上画画(故事板+代码方式)
第一步: //UserTableViewCell.h这里定义第一种Cell #import <UIKit/UIKit.h> @interface UserTableViewCell : U ...
- iOS开发 tableView点击下拉扩展 + 内嵌collectionView上传图片效果
---恢复内容开始--- //需要的效果 1.设置window的根视图控制器为一个UITableViewController #import "AppDelegate.h"#imp ...
随机推荐
- 网络叠加模式VLAN、VxLAN、GRE
什么是叠加网络 1.一个数据包(或帧)封装在另一个数据包内;被封装的包转发到隧道端点后再被拆装. 2.叠加网络就是使用这种所谓"包内之包"的技术安全地将一个网络隐藏在另一个 网络中 ...
- 弹框ESC键退出
$(document).keyup(function(event){ switch(event.keyCode) { case 27: alert("ESC"); case 96: ...
- wpf使用devexpress RibbonControl实现导航窗体
实现如下效果 <Window xmlns:dxr="http://schemas.devexpress.com/winfx/2008/xaml/ribbon" ...
- 关于Mac中Clion使用OpenCV
关于Mac中Clion使用OpenCV 目标 Clion能够使用OpenCV 步骤 下载安装cmake,官网下载 下载OpenCV mac/linux版 使用cmake gui编译opencv安装包, ...
- android下拉刷新控件 android-pulltorefresh
运行效果: 介绍:ListView.ViewPager.WevView.ExpandableListView.GridView.(Horizontal)ScrollView.Fragment上下左右拉 ...
- Java 四舍五入并小数点后保存两位,千分位分隔
import java.text.DecimalFormat; public class FileTest { public static void main(String[] args) { ...
- jenkins 杀死衍生进程
解决方法-1: 在execute shell输入框中加入BUILD_ID=DONTKILLME,即可防止jenkins衍生进程 解决方法-2: 修改/etc/sysconfig/jenkins配置,在 ...
- 嵌入式系统基础知识(一): 系统结构和嵌入式Linux
目录 一. 嵌入式体系结构 二. 开发过程中的分工 三. 嵌入式软件体系结构 四. 嵌入式Linux 一. 嵌入式体系结构 <嵌入式系统设计师教程>这本书的前三章脉络很清晰, 按照嵌入式系 ...
- 如何在MyEclipse中配置jre的编译运行环境
由于在MyEclipse中已经自带了jre编译环境,但由于版本太低,所以有时候需要将编译环境配置为系统的jre版本.在MyEclipse中配置jre的编译运行环境很简单,只需要全局配置一次,则所有项目 ...
- Hadoop集群出现no data node to stop的解决方案
问题描述: 今天stop hadoop集群的时候出现no datanode to stop ,寻找解决方案,并不是网上资料所说的什么DFS Used .Non DFS Used等于0 .所有的节点都是 ...