iOS-MJRefresh框架
1.用MJRefresh框架实现上下拉刷新
1.1 如何使用这个框架,只需要告诉控件的scrollView是谁,就能将框架添加到我们的滚动视图中了
// 下拉刷新
MJRefreshHeaderView *header = [MJRefreshHeaderView header];
header.scrollView = self.tableView;
header.delegate = self;
// 开始下拉刷新
[header beginRefreshing];
MJRefreshFooterView *footer = [MJRefreshFooterView footer];
footer.scrollView = self.tableView;
footer.delegate = self;
1.3 加载最新数据,需要将获取到的数据插入最前面
#pragma mark 下拉刷新新数据
- (void)loadNewData:(MJRefreshBaseView *)refreshView
{
// 取出第一条微博ID
// 需要判断数组是否为空。
StatusCellFrame *f = _statusesFrame.count?_statusesFrame[0] :nil;
long long sinceId = f.status.ID;
[StatusTool statusesWithPath:@"2/statuses/friends_timeline.json" sinceId:sinceId maxId:0 success:^(NSArray *statues) {
// 显示刷新了多少条数据
[self showNewStatusCount:statues.count];
NSMutableArray *newFrames = [NSMutableArray arrayWithCapacity:statues.count];
for (Status *status in statues) {
// 将微博数据转换成frame模型
StatusCellFrame *f = [[StatusCellFrame alloc] init];
f.status = status;
[newFrames addObject:f];
}
// 将数据插入到数组最前面
[_statusesFrame insertObjects:newFrames atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, newFrames.count)]];
// 刷新表格
[self.tableView reloadData];
// 停止刷新状态
[refreshView endRefreshing];
} failure:^(NSError *error) {
[refreshView endRefreshing];
}];
1.4 加载更多以前的数据,直接将获取到的数据添加到最后就行了。
#pragma mark 上啦刷新更多
- (void)loadMoreData:(MJRefreshBaseView *)refreshView
{
// 取出最后一条微博ID
StatusCellFrame *f = [_statusesFrame lastObject];
long long maxId = f.status.ID;
// 加载比当前小的微博数据
maxId--;
[StatusTool statusesWithPath:@"2/statuses/friends_timeline.json" sinceId:0 maxId:maxId success:^(NSArray *statues) {
// 将获取到的数据放置最前面
NSMutableArray *newFrames = [NSMutableArray arrayWithCapacity:statues.count];
for (Status *status in statues) {
// 将微博数据转换成frame模型
StatusCellFrame *f = [[StatusCellFrame alloc] init];
f.status = status;
[newFrames addObject:f];
}
// 将数据添加到最后面
[_statusesFrame addObjectsFromArray:newFrames];
// 刷新表格
[self.tableView reloadData];
// 让刷新控件停止刷新状态
[refreshView endRefreshing];
} failure:^(NSError *error) {
[refreshView endRefreshing];
}];
iOS-MJRefresh框架的更多相关文章
- 又一个高性能轻量级的iOS模型框架YYModel
前言 iOS的模型框架其实有很多了,去年研究过Mantle,也了解过JSONModel.MJExtension,最近的项目项目优化的时候,再次考虑,基于轻量级.高性能的考虑,最终选择了YYModel. ...
- [iOS 主要框架的总结]
原文地址:http://blog.csdn.net/GooHong/article/details/28911301 在iOS中框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件, ...
- swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程
swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 1.2.3 注册非免费苹果账号swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 免费的苹果账号在 ...
- Swift版iOS游戏框架Sprite Kit基础教程下册
Swift版iOS游戏框架Sprite Kit基础教程下册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C 介绍:本教程是国内唯一的Swift版的Spritekit教程. ...
- iOS Foundation 框架概述文档:常量、数据类型、框架、函数、公布声明
iOS Foundation 框架概述文档:常量.数据类型.框架.函数.公布声明 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业 ...
- IOS系统框架
IOS系统框架:ios架构号MAC OS的基础框架相似:ios扮演底层硬件和应用程序的中介,底层为所有应用程序提供基础服务,高层则包含一些复杂巧妙的技术和服务,并且创建的应用程序不能直接访问硬件. C ...
- ios中框架介绍
ios中框架介绍 参考博客: 参考文章:框架介绍 框架介绍 框架就是一个目录,一个目录包含了共享库,访问共享库里面的代码的头文件,和其他的图片和声音的资源文件.一个共享库定义的方法和函数可以被应用程序 ...
- iOS Foundation 框架基类
iOS Foundation 框架基类 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...
- iOS各框架功能简述以及系统层次结构简单分析
iOS各个框架所对应的功能简单介绍 iOS系统结构层次:
- iOS绘图框架CoreGraphics分析
由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐.因此,本文主要介绍一下iOS的绘图 ...
随机推荐
- js for/in循环及其它
for in 循环不仅可以遍历对象的属性,还可以遍历数组. Js 中为数组提供了多种遍历方式 const ary = ['a', 'b', 'c']; // 最基本的方式, 只能遍历下标有序递增的数组 ...
- ask confirm shell
#/bin/bash BASEDIR=$(cd $() && pwd) cd $BASEDIR>/dev/null usage="Usage: $0 -o/--org ...
- CF C. Vladik and fractions——构造题
题目 构造一组 $x, y, z$,使得对于给定的 $n$,满足 $\frac{1}{x} + \frac{1}{y} + \frac{1}{z} = \frac{2}{n}$. 分析: 样例二已 ...
- js中使用Switch
语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 } ...
- mysql - InnoDB存储引擎 死锁问题( Deadlock found when trying to get lock; try restarting transaction )
刚刚向数据库插入数据的时候出现了这么一段错误 Deadlock found when trying to get lock; try restarting transaction 主要原因(由于无法使 ...
- Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
链接: https://codeforces.com/contest/1251/problem/D 题意: You are the head of a large enterprise. n peop ...
- thymeleaf引入公共css、js
有时候很多css文件是公共的,我们必须要在每个html文件中引入它们,其实我们可以利用Thymeleaf的模板布局,把这些css文件抽出来,同时如果有某个html文件专属的css文件,还可在引入模板的 ...
- php类的定义与实例化方法
php类的定义 类是对某个对象的定义.它包含有关对象动作方式的信息,包括它的名称.方法.属性和事件.实际上它本身并不是对象,因为它不存在于内存中.当引用类的代码运行时,类的一个新的实例,即对象,就在内 ...
- 二十五 存储技术与应用 iSCSI技术应用 、 udev配置 NFS网络文件系统 、 Multipath多路径 、 NFS网络文件系统 、 udev配置
1.配置iSCSI服务 服务器上要额外配置一块硬盘 服务端(proxy)安装target,并将新加的硬盘配置为iSCSI 的共享磁盘 在客户端(client)上安装initiator,挂载服务器iSC ...
- 初识QuartusII 9.0(破解,半加器的仿真,综合:上)
由于在意大利期间,用的xilinx公司的ZYBO板子,相应的软件用ISE,SDK.回国买了altera公司的板子,自然也要学习国内较流行的软件(TB大西瓜家,因此相关例程也是大部分引用他家).Quar ...