Swift版 仿京东app下拉刷新

原理:
无论是下拉刷新还是上拉加载更多,原理都是在内容 (tableview.addSubview :下拉刷新,tableview.tableFooterView:上拉加载更多),不能下拉或者上划时响应用户的触摸事件,在顶部或者底部显示一个刷新视图,在程序刷新操作完成后再隐藏掉。

以上内容仅供个人学习;

动画简单实现

  1. 普通状态 -->显示默认状态图片,
    2.下拉状态--->计算下拉过度点,及其范围点-->进行图片缩放
    3.刷新状态-->隐藏默认状态,显示动画
  • 当用户拖动tableView 而且没有松手
    • 当contentOffset.y > 过度值 显示正常 且当前状态为下拉中
    • 当contentOffset.y <= 过度值 下拉中 且当前的状态为正常
    • 当用户拖动tableView 而且松手了
    • 如果当前的状态为 下拉中 -->刷新中
    • 如果用户松手了 而且当前的状态为下拉中 才能进入刷新中

难点: 获取当前下拉的偏移量 contentOffset.y -->进行操作

// 得到scrollView 的变化
    override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
        
        getSHRefreshControlState(self.scrollView!.contentOffset.y)
    }

各位可根据自己的需求进行更新修改

Demo下载地址:https://github.com/baiGenZhengliu/SwiftDemo.git

gif.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 下拉刷新 & 上拉加载 课程目标 KVO的使用 UIScrollView使用 接口准备 新浪微博下拉刷新与上拉加载...
    月下独酌灬阅读 1,824评论 4 12
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • 踏着初春的冰雪回家 家不是故乡 家渐近 故乡啊 却成为频频眺望的远方 看妻女品味故乡的泥螺香 思绪又回到了远方 ...
    星之桥阅读 145评论 0 2
  • 雅思写作中经常有满分文章出现,一起来欣赏下这些美文中富有之类的句子吧! 人总是走在陌生的路上,看着陌生的风景,听着...
    教外老李阅读 512评论 0 11