iPhone应用炫酷的下拉更新效果

转载 2012年05月31日 12:13:26

原文地址:iPhone应用炫酷的下拉更新效果    原文作者:冥冥之中


最近看到有不少人问,像Twitter,Sina微博等这些iPhone客户端下拉刷新是怎么实现的,所以花了点时间整理一个例子给大家参考一下。   

能够下拉说明他首先得是个UIScrollView,因为只有他才有那些Drag事件。在参考一些开源代码的基础上,整理的大致思路如下:

一)在UIScrollView的顶部添加一个头部视图,用来显示旋转指针、描述文字和更新时间等。设计这个视图不难,但怎么添加顶部去呢,而且没有下拉 的情况下是看不到的。简单,只要把这个头部视图的frame的y坐标设置为负数就可以,比如为CGRectMake(0, -60, 320, 60),然后调用UIScrollView的addSubview方法,这就把放到顶部宽320px、高60px的地方了。当UIScrollView往 下拖动60px,头部视图就完全展现,松开后就又缩回去了。

二)其实明白了一)的道理,就可以自己做个实现了,但我还是把话说完吧。这一步需要设置UIScrollView的delegate,所以需要实现 UIScrollViewDelegate。UIScrollViewDelegate实现里面主要处理下面几个事 件:1)scrollViewDidScroll,当拖动时发生,在这里加上更改头部视图状态的操作,比如更新描述文字,更改箭头方向 等;2)scrollViewDidEndDragging,当停止拖动时发生。这里就可以写调用远程接口的代码了(注意最好是异步方式调用接口,在调用 完成的回调函数里面,让UIScrollView复位)。

示例代码中是以最常见的表格组件UITableView来举例的,他是UIScrollView的子类。

另外这个例子中关于数据模型及与调用后台接口的代码不完整,因为这个写上代码就复杂了,而且大家具体的实现可能都不一样,所以就点到为止。这个示例代码持续更新,下一步计划加上那种金属质感的声音,以及看大家的反馈看需要什么。

在3.0的模拟器上测试通过了。有什么问题请回复,谢谢!

 

 
 


相关文章推荐

iPhone应用炫酷的下拉更新效果

原文地址:iPhone应用炫酷的下拉更新效果    原文作者:冥冥之中 楼主  发表于 2010-6-19 05:00 | 只看该作者 | 倒序看帖 | 打印 最...
  • chun799
  • chun799
  • 2011年10月20日 09:28
  • 614

iPhone应用炫酷的下拉更新效果

原文地址:iPhone应用炫酷的下拉更新效果    原文作者:冥冥之中 最近看到有不少人问,像Twitter,Sina微博等这些iPhone客户端下拉刷新是怎么实现的,所以花了点时间整理一个...
  • sjzsp
  • sjzsp
  • 2011年10月12日 16:39
  • 5237

【Android】SwipeRefreshLayout的简单使用教程。下拉刷新控件炫酷效果。

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个...

iphone应用之微信摇一摇效果

  • 2012年08月18日 17:06
  • 260KB
  • 下载

ptrFrameLayout实现炫酷的下拉刷新、上拉加载

compile 'com.chanven.lib:cptr:1.1.0' //http://blog.csdn.net/evan_man/article/details/51570466 ...

自定义渐变式炫酷动画的ListView下拉刷新

自定义渐变式炫酷动画的ListView下拉刷新装载请注明出处:http://blog.csdn.net/u012891600/article/details/55144013主要要点 listvi...

史上最最最炫酷动感的下拉刷新,只需要十秒钟就可以让你完成。

在我们处理很多很繁冗数据的时候,我们用到了listview去装载数据,但可显示的区域有限,这时候我们就需要用到我们的下拉刷新去加载更多的数据了。这个效果是仿制android5.0的效果在额外多了一个粘...

Html+css、javascript和JQuery三种方法实现导航条下拉菜单的炫酷效果

分别采用Html+css、javascript和JQuery三种方法实现导航条下拉菜单的炫酷效果
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iPhone应用炫酷的下拉更新效果
举报原因:
原因补充:

(最多只允许输入30个字)