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.这是动态变化的. 查看 ...
一周排行
  • 北京时间9月13日,微软在加州阿纳海姆举行名为"BUILD"的大会,向公众和开发者展示Windows 8操作系统的早期版本.号称统一PC与移动终端的Windows 8吸引了全世界的目光.10年以来 ...
  • 简要描述: 某企业系统的info_cont.asp文件存在注入漏洞,全站没有过滤特殊字符啊亲! 详细说明: 某企业网站系统的info_cont.asp文件存在注入.看下代码   <[email protected]=&quo ...
  • 作为破坏力较强的黑客攻击手段,DDoS是一种形式比较特殊的拒绝服务攻击.作为一种分布.协作的大规模攻击方式,它往往把受害目标锁定在大型Internet站点,例如商业公司.搜索引擎或政府部门网站.由于DDoS攻击的恶劣 ...
  • 优酷播放地址 欢迎关注氪 TV 的"krvideo",以及优酷频道,第一时间收看更多有趣的科技视频
  • 无论是windows下的路径分隔符""还是linux的"/",这并不是一个严重的问题,不过在web上层面开就会出现很大的"bug",如果在web的开发上没有 ...
  • SELECT CONVERT(varchar(10), getdate(), 120)--当前年月日,Example:9 SELECT CONVERT(varchar(10), getdate(), ...
  • 一:先上效果图: 二:源代码文件:reg.html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
  •     在看牛腩老师讲新闻发布系统的时候,它讲到一个TODO任务,于是就百度了一下VS的任务列表功能,才发现它的功能是如此的强大啊,我们直接就可以在VS中制定任务,完成任务了!还有一些设置模板库的功能,这在无形之中提 ...
  • 11月30日在东京开幕的2005年国际机器人展是世界上最大的机器人交易会,吸引了200家机器人制造厂家和相关企业参展.图为一位颇具明星相的“演员型”机器人在展场吸引众多参观者的目光.这款酷似真人的机器美女,无论外形. ...