iOS学习之下拉刷新
今天我们来给昨天的Demo加上下拉刷新和上拉加载更多的功能.
1.下拉刷新.
在viewDidLoad中调用方法addRefreshControl,下拉时可以出现风火轮加载更多的效果.
- (void)addRefreshControl {
self.refreshControl = [[[UIRefreshControl alloc] initWithFrame:CGRectZero] autorelease]; //frame不用给,系统默认有.
self.refreshControl.attributedTitle = [[[NSAttributedString alloc] initWithString:@"下拉刷新数据"] autorelease];
//添加响应事件
[self.refreshControl addTarget:self action:@selector(handleReload:) forControlEvents:UIControlEventValueChanged]; }
响应事件的要根据实际情况,这里写成一个方法,当下拉时,重新向服务器请求(第一页)数据.
- (void)handleReload:(UIRefreshControl *)refresh {
//请求最新数据,第一页数据.
[self loadDataWithIndex:];
}
这里的loadWithIndex方法也是为了能够总是请求第一页数据,也就是index为0("http://c.m.163.com/nc/article/list/T1348648517839/%ld-50.html",index);
//将请求的服务器地址单独写成一个方法,便于在下拉刷新和上拉加载时候调用.
//第一页:0 - 20; 第二页:20 - 20; 第三页:30 - 20....
- (void)loadDataWithIndex:(NSInteger)index {
_index = index;
//设置请求网址
self.engine.linkName = [NSString stringWithFormat:kNewsAPI, index];//0 - 20条数据
//开始网络请求
[self.engine startDownloadData];
}
下拉刷新完毕.
下面是上拉加载更多.
那么什么时候应该加载呢?---当"上拉加载"这个Cell出现时候,说明视图已经滚动到了最后面.这时候我们可以调用UITableViewDelegate协议中的一个方法来让数据加载;
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
//如果要展示的Cell是最后一行,请求下一页数据
if (indexPath.row == self.dataSource.count) {
LoadingCell *cell1 = (LoadingCell *)cell; //将Cell转换一下类型,如果不做这一步,tableView并不知道这最后一个Cell是哪一套Cell
[cell1.indicatorView startAnimating];
//加载更多数据,下一页数据
[self loadDataWithIndex:self.dataSource.count];//第一页0-20,self.data.count=20,第二页20-20,count=40,第三页40-20,count=60;
}
}
iOS学习之下拉刷新的更多相关文章
- iOS学习之下拉刷新、上拉加载
http://blog.csdn.net/mx_xuanxiao/article/details/50595370
- 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)
转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息] ...
- IOS 开发下拉刷新和上拉加载更多
IOS 开发下拉刷新和上拉加载更多 简介 1.常用的下拉刷新的实现方式 (1)UIRefreshControl (2)EGOTTableViewrefresh (3)AH3DPullRefresh ( ...
- 微信小程序之下拉刷新,上拉更多列表实现
代码地址如下:http://www.demodashi.com/demo/11110.html 一.准备工作 首先需要下载小程序开发工具 官方下载地址: https://mp.weixin.qq.co ...
- android 5.0新特性学习总结之下拉刷新(一)
android 5.0 后google最终在 support v4 包下 添加了下拉刷新的控件 项目地址: https://github.com/stormzhang/SwipeRefreshLayo ...
- IOS tableview下拉刷新上拉加载分页
http://code4app.com/ios/快速集成下拉上拉刷新/52326ce26803fabc46000000 刷新没用用插件,加载使用的MJ老师的插件. - (void)viewDidLoa ...
- IOS UITableView下拉刷新和上拉加载功能的实现
在IOS开发中UITableView是非常常用的一个功能,而在使用UITableView的时候我们经常要用到下拉刷新和上拉加载的功能,今天花时间实现了简单的UITableView的下拉刷新和上拉加载功 ...
- HBuilder/Mui开发ios使用上拉刷新导致滚动条无法使用的解决方法
HBuilder/Mui开发的APP使用上拉刷新,当滚动到底部是会触发上拉刷新,加载更多数据.但是ios上确是一个坑,导致滚动条无法滚动. 解决方法 放弃Mui的上拉刷新,自己使用JS实现. var ...
- Android之下拉刷新的ListView
不废话,代码里面注释很详细,直接上代码: 自定义的RefreshableListView代码: public class RefreshableListView extends ListView im ...
随机推荐
- 转:MFC 的程序中GetAt()的理解
BYTE 是 1字节长度 的 整型, int 是 4 字节长度 的 整型. CString::GetAt(0); 就是把 一个 CString 对象里 的字符串 中的第一个字符,把它的ASCII 值 ...
- NUnit+mock+moq单元测试
[TestFixture] public class InstantBatchBuyTest { private string _mallAbc; private string _itemCode; ...
- Iterator pattern(c++实现)
概述: 在现在的电视机中,我们使用[后一个]和[前一个]按钮可以很方便的换台,当按下[后一个]按钮时,将切换到下一个预置的频道.想象一下在陌生的城市中的旅店中看电视.当改变频道时,重要的不是几频道,而 ...
- Google Code Jam 2012 round 2 problem A: Swinging Wild
题目连接 题意:你要从起点经过绳子荡到终点,每次你必须抓住另一个绳子,在空中不能向下爬.问是否有合理的方案 做法: 直接模拟 #include <iostream> #include &l ...
- 翻译brent ozar的sqlserver dba训练课程——第一章:建立数据库服务器清单
在公司里,走进销售副总裁的办公室,询问他手下有多少销售人员.不,我的意思是你并不要那么做,他们会问你销售工具为什么那么慢. 其实我的意思是,如果你能走进他的办公室问他这个问题.我敢打赌,他会马上回答 ...
- spring中获取Bean
在测试类中我们获取已经装配给容器的Bean的方法是通过ApplicationContext,即 ApplicationContext ac=new ClassPathXmlApplicationCon ...
- javascript 中 nodeValue 、value 、text 的区别
nodeValue: 属性设置或者返回某节点的值: 也可以改变某个文本节点的值, node.nodeValue eg: 如何获取p元素里面的文本内容 <p id="demo" ...
- C++编程规范之12:懂得何时和如何进行并发性编程
摘要: 如果应用程序使用了多个线程或者进程,应该知道如何尽量减少共享对象,以及如何安全地共享必须共享的对象. 在多线程和并发编程中最重要的是要避免死锁.活锁和恶性的竞争条件. 在编写多线程程序时要注意 ...
- javascript中的变量作用域
在网上看了一道js面试题 <script type="text/javascript"> var tt = 'aa'; function test() { alert( ...
- nginx反向代理nginx,RealServer日志打印真实ip
title: nginx反向代理nginx,RealServer日志打印真实ip date: 2016-05-11 19:15:37 tags: --- nginx反向代理nginx,RealServ ...