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的绘图 ...
随机推荐
- sql sever 触发器的概念和使用
触发器简介: 触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手动执行,而是由事件来触发.触发器是当对某一个表进行操作.例如:update.insert.delete这些操作的时候,系统会自 ...
- mybatisplus构造器 condition
不为null和不为“”的才会加入到sql语句中
- 自定义starter
https://github.com/deadzq/spring-boot-starter-hello 父子项目 子项目引用父项目中的依赖和配置参数
- bzoj 3498
统计三元环 很多代码在bzoj都T诶 #include <iostream> #include <cstdio> #include <algorithm> #inc ...
- python中如何给散点图上面的特定点做标记
今天想在散点图的某些特定的点外面画圆圈标记,从下面的文章找到一些灵感,只要在原来的散点图上面给指点添加相应的标志,设置其透明度就可以实现该想法. 顺便复习下散点图的用法. 大家平时为了直观地显示数据的 ...
- webkit vs v8
我们知道不同浏览器用的不同的渲染引擎: Tridend(IE).Gecko(FF).WebKit(Safari,Chrome,Andriod浏览器) 当然 Chrome 重构了一下 WebKit 然后 ...
- P2320 [HNOI2006]鬼谷子的钱袋——进制(没事就别看这个了)
就是n可以被1到n/2的所有数表示出来: 我一开始写了个把二进制数里的1拿出来,但是WA了两个点: 分治? 好多人说数据有问题,我也不知道,也不想知道: %:include<cstdio> ...
- C++中的平方、开方、绝对值怎么计算
#include <math.h> //平方 pow() ,);// 4的平方=16 //开方 ,0.5);// 4的平方根=2 );// 4的平方根=2 //整数绝对值 int c = ...
- Python中匹配IP的正则表达式
下面是IPv4的IP正则匹配表达式 import re #简单的匹配给定的字符串是否是ip地址,下面的例子它不是IPv4的地址,但是它满足正则表达式 if re.match(r"^(?:[0 ...
- springboot连接redis进行CRUD
springboot连接redis进行CRUD: 1.添加以下依赖: <dependency> <groupId>org.springframework.boot</gr ...