今天我们来给昨天的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学习之下拉刷新的更多相关文章

  1. iOS学习之下拉刷新、上拉加载

    http://blog.csdn.net/mx_xuanxiao/article/details/50595370

  2. 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息] ...

  3. IOS 开发下拉刷新和上拉加载更多

    IOS 开发下拉刷新和上拉加载更多 简介 1.常用的下拉刷新的实现方式 (1)UIRefreshControl (2)EGOTTableViewrefresh (3)AH3DPullRefresh ( ...

  4. 微信小程序之下拉刷新,上拉更多列表实现

    代码地址如下:http://www.demodashi.com/demo/11110.html 一.准备工作 首先需要下载小程序开发工具 官方下载地址: https://mp.weixin.qq.co ...

  5. android 5.0新特性学习总结之下拉刷新(一)

    android 5.0 后google最终在 support v4 包下 添加了下拉刷新的控件 项目地址: https://github.com/stormzhang/SwipeRefreshLayo ...

  6. IOS tableview下拉刷新上拉加载分页

    http://code4app.com/ios/快速集成下拉上拉刷新/52326ce26803fabc46000000 刷新没用用插件,加载使用的MJ老师的插件. - (void)viewDidLoa ...

  7. IOS UITableView下拉刷新和上拉加载功能的实现

    在IOS开发中UITableView是非常常用的一个功能,而在使用UITableView的时候我们经常要用到下拉刷新和上拉加载的功能,今天花时间实现了简单的UITableView的下拉刷新和上拉加载功 ...

  8. HBuilder/Mui开发ios使用上拉刷新导致滚动条无法使用的解决方法

    HBuilder/Mui开发的APP使用上拉刷新,当滚动到底部是会触发上拉刷新,加载更多数据.但是ios上确是一个坑,导致滚动条无法滚动. 解决方法 放弃Mui的上拉刷新,自己使用JS实现. var ...

  9. Android之下拉刷新的ListView

    不废话,代码里面注释很详细,直接上代码: 自定义的RefreshableListView代码: public class RefreshableListView extends ListView im ...

随机推荐

  1. Android 自定义回调

    刚开始接触的时候,觉得 回调 是一个很难理解的概念,之后就不停的上网查找回调的定义:(当你想要把具体的操作,让具体的人来完成,自己定义一个接口就好.使用的时候用接口,具体的人来实现你的接口,也就是实现 ...

  2. CreateLiveCMSV4.0 漏洞,无需后台Get shell

    Title:CreateLiveCMSV4.0 漏洞,无需后台Get shell --2012-03-06 17:28 标题:CreateLive CMS Version 4.0.1006 漏洞,无需 ...

  3. Qt自定义带游标的slider,在滑块正上方显示当前值(类似于进度条,用一个额外的QLabel冒充QSilder的一部分,然后move就行了)

    首先自定义QSlider的子类MyCustomSlider,如下所示. mycustomslider.h #ifndef MYCUSTOMSLIDER_H #define MYCUSTOMSLIDER ...

  4. 迅雷程浩:企业外包服务,下一个大的风口?(2B业务一定要懂销售和营销的人,这点和2C 不一样)

    我今年暑假去了趟硅谷,一天去一个朋友的公司拜访,发现这公司没有前台,前台桌子上放了一个显示器.我刚进去,显示器里的老印就跟我打招呼 "How may I help you?" 事后 ...

  5. cf581D Three Logos

    Three companies decided to order a billboard with pictures of their logos. A billboard is a big squa ...

  6. cf500C New Year Book Reading

    C. New Year Book Reading time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  7. win7配置简单的FTP服务器

    1.开启一些win7默认是关闭状态的功能 步骤:控制面板 -> 程序和功能 -> 打开或关闭Windows功能,然后勾选下图中圈起来的部分: 2.添加FTP站点 步骤:桌面的计算机图标 - ...

  8. mac下Apache添加限速模块mod_bw

    官方文档: Apache2 - Mod_bw v0.7 Author : Ivan Barrera A. (Bruce) HomePage : Http://Ivn.cl/apache & h ...

  9. 论js闭包的重要性

    很久没写博客了,今天发现了一个很有意思的问题,写下来分享一下 话不多说,贴前端代码: <script type="text/javascript" src="js/ ...

  10. jdk\willy\集群安装

    一.telnet用户验证端口: yum install telnet #也可以使用 yum install telnet-ssl 安装支持SSL的telnet方式,这样安全一些,不建议使用标准的tel ...