iOS UITableView 实现上拉及下拉刷新

做iOS开发已经两年多了。最近,在整理以前的代码,找到当时卡壳的一些代码片段,写博客跟大家分享一下。欢迎iOS初学者订阅我的博客,有什么问题可以留言交流。以下正文:
 
 
 
一般说到上拉刷新下拉刷新,很多人可能想到的是一个第三方开源框架EGORefresh,下面说下,如何自己写代码实现。
 
UITableView本身是一个UIScrollView,所以UITableView可以实现UIScrollView的代理方法。上拉和下拉刷新无非是UIScrollView偏移到一定程度调用刷新方法。 实现- (void)scrollViewDidScroll:(UIScrollView *)scrollView代理方法即可。代码如下:
 
 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    // 假设偏移表格高度的20%进行刷新
    
    if (!_isLoading) { // 判断是否处于刷新状态,刷新中就不执行
        
        // 取内容的高度:
        //    如果内容高度大于UITableView高度,就取TableView高度
        //    如果内容高度小于UITableView高度,就取内容的实际高度
        float height = scrollView.contentSize.height > _tableView.frame.size.height ? _tableView.frame.size.height : scrollView.contentSize.height;
        
        if ((height - scrollView.contentSize.height + scrollView.contentOffset.y) / height > 0.2) {
            // 调用上拉刷新方法
        }
        
        if (- scrollView.contentOffset.y / _tableView.frame.size.height > 0.2) {
            // 调用下拉刷新方法
        }
    }
}
 
具体要实现什么样的刷新效果就在注释位置加上,还可以加上动画效果、菊花进度条之类,看客们自己搞定。
更多相关文章
  • 奇虎360董事长周鸿祎似乎总是在给自己找对头,然后等着仇家寻上门来.虽然每次的恩怨都在口水仗里不了了之,不过这次,周鸿祎似乎躲不过了.6月2日,金山一纸诉状将他告上法庭,索赔金额1200元,要求周鸿祎停止侵权,并在各大网站的微博首页连续7天发表致歉声明,消除影响.次日,周鸿祎表示,360现在已经发展 ...
  • 网络福尔摩斯   大名江春傲   林杨/文   在他的从警生涯中,没有冲锋陷阵的英勇之举,也没有追逃缉凶的惊险历程.电脑,是他守护网络世界安宁的有力武器.   >>网络暗战   数百嫌犯栽在他手里   夜晚,金华市公安局网警支队支队长江春傲办公室的灯经常都是亮着的……在这个没有硝烟的战场 ...
  •   #coding=utf-8 #!/usr/bin/python import sys; print("The command line parameters are : "); for i in range(0, len(sys.argv)) : print str(i) + ...
  • 从文件中读取内容 本节将学习如何从文件中读取内容.如果文件中的内容是以Prolog的语句形式存在的,那么在Prolog中读取这样的文件内容是很容易的.比如文件houses.txt的内容如下: gryffindor. hufflepuff. ravenclaw. slytherin. 下面是Prolo ...
  • jmp short 标号 ; 段内转移,IP 偏移 8 位 jmp near ptr 标号 ; 段内转移,IP 偏移 16 位 jmp far ptr 标号 ; 段间转移,同时更改 CS 和 IP jmp 16 位 reg ; (IP)=(16 位 reg) jmp word ptr 内存单元地址 ...
  • 问:怎样解决mysql连接过多的错误? 答:系统不能连接数据库,关键要看两个数据: 1.数据库系统允许的最大可连接数max_connections.这个参数是可以设置的.如果不设置,默认是100.最大是16384. 2.数据库当前的连接线程数threads_connected.这是动态变化的. 查看 ...
一周排行
  • 前言 在我映像中,异步最早出现与ajax,当时我还在搞.net,然后.net居然出了一个异步的控件...... 虽然我最后知道了他不是异步的......然后,前端异步用得特别多,如果不是异步的程序,你都不好意思说是自 ...
  • 艺龙日前发布了未经审计的2010年第四季度及全年财报.财报显示,艺龙2010年净营收(计入营业税和附加税)为人民币4.819亿元,同比增长35%:运营利润为人民币4710万元,同比增长321%. 2010年艺龙有近2 ...
  • 本文出处:http://blog.csdn.net/chaijunkun/article/details/23283431,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在原始出处查看此 ...
  • 建立一个可靠的规则集对实现成功的.安全的防火墙来说是非常关键的一步.在安全审计中,经常能看到一个巨资购入的防火墙由于规则配置的错误而将机构暴露于巨大的危险中.本文以高阳信安的DS2000防火墙为例介绍如何设计.建立和 ...
  • 使用 HttpWebRequest 向网站提交数据HttpWebRequest 是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过 HTTP 协议和服务器交互. HttpWebRe ...
  • 咋先不说解决这种背包问题的方法,个人感觉应该先把产生问题的背景描述出来会比较好一点,如下: 1,问题描述 有N件物品和一个容量为V的背包.第i件物品的重量是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品 ...
  • where条件顺序不同,性能是否也不同的问题   昨天在书上看到SQL语句优化时,where条件顺序不同,性能不同,这个建议在Oracle11G版本还合适吗???方式1优于方式2???????? 方式1: selec ...
  • 公司开发了半年多的一个网站项目上线了,是给US客户做的赌场门户网站,上面有在线的赌博游戏,调用的是其他游戏公司提供的接口,支持信用卡在线购买筹码,同时加入了社交元素,如文字图片分享,朋友关系等等.由于是个中小规模的网 ...
  • 易网科技讯 4月21日消息,主题为"塑造企业价值"的2010企业信息化高峰论坛今天在北京举行,易网科技作为独家门户支持媒体,在现场做了直播报道.
  • 匿名 https://www.guerrillamail.com/zh http://www.yopmail.com/zh/  转发 http://spambox.us  http://trashmail.net