Swift版使用ThPullRefresh实现下拉上拉刷新数据

 更新时间:2016年01月27日 08:52:01   作者:tanhui_ui  
这篇文章主要介绍了Swift版使用ThPullRefresh实现下拉上拉刷新数据,需要的朋友可以参考下

最近自己写了一个下拉加载最新,上拉加载更多的刷新控件。借鉴了其他优秀开源代码的实现效果比如MJRefresh和DGElasticPullRefresh。主要是为了学习别人的优秀思想。

如何使用:

  Cocoapods 导入:pod 'ThPullRefresh',

  在项目中 import 'ThPullRefresh'

  手动导入:将'ThPullRefresh' 文件夹中的所有文件拽入项目中

   head与foot基本效果的添加  

具体代码如下:

  override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "tableViewCell")
    self.tableView.rowHeight = UITableViewAutomaticDimension
    self.tableView.estimatedRowHeight = 44
    self.tableView.tableFooterView = UIView()
//    self.tableView.addHeadRefresh(self) { () -> () in
//      self.loadNewData()
//    }
    self.tableView.addHeadRefresh(self, action: "loadNewData")
 
    self.tableView.head?.hideTimeLabel=true
    self.tableView.addFootRefresh(self, action: "loadMoreData")
  }
 
 
  func loadNewData(){
    //延时模拟刷新
    self.index = 0
    DeLayTime(2.0, closure: { () -> () in
      self.dataArr.removeAllObjects()
      for (var i = 0 ;i<5;i++){
        let str = "最新5个cell,第\(self.index++)个"
        self.dataArr.addObject(str)
      }
      self.tableView.reloadData()
      self.tableView .tableHeadStopRefreshing()
    })
     
  }

DelayTime是一个方法的宏

func DeLayTime(x:Double,closure:()->()){
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(x * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure)
}

要实现果冻效果

 

代码如下

几个有颜色的点可以忽略,那是开发用于调贝塞尔曲线的。

  /*
  *bgColor 背景颜色
  *loadingColor 加载的颜色
  */
  public func addBounceHeadRefresh(target:AnyObject?,bgColor:UIColor,loadingColor:UIColor,action : Selector);
 
//实现如下
self.tableView.addBounceHeadRefresh(self,bgColor:UIColor.orangeColor(),loadingColor:UIColor.blueColor(), action: "loadNewData")

 停止头部刷新和底部刷新

self.tableView.tableHeadStopRefreshing()
self.tableView.tableFootStopRefreshing

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • Swift中动态调用实例方法介绍

    Swift中动态调用实例方法介绍

    这篇文章主要介绍了Swift中动态调用实例方法介绍,在Swift中有一类很有意思的写法,可以让我们不直接使用实例来调用这个实例上的方法,而是通过类型取出这个类型的某个实例方法的签名,然后再通过传递实例来拿到实际需要调用的方法,需要的朋友可以参考下
    2015-01-01
  • 详解Swift编程中的常量和变量

    详解Swift编程中的常量和变量

    这篇文章主要介绍了Swift编程中的常量和变量,是Swift入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • Swift使用SnapKit模仿Kingfisher第三方扩展优化

    Swift使用SnapKit模仿Kingfisher第三方扩展优化

    这篇文章主要为大家介绍了Swift SnapKit模仿Kingfisher第三方扩展优化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • swift 3.0中realm封装类示例代码

    swift 3.0中realm封装类示例代码

    这篇文章主要给大家介绍了关于swift 3.0中realm封装类的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用swift具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • SwiftUI 引导页界面实现示例

    SwiftUI 引导页界面实现示例

    这篇文章主要为大家介绍了SwiftUI 引导页界面实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Swift实现倒计时5秒功能

    Swift实现倒计时5秒功能

    这篇文章主要为大家详细介绍了Swift实现倒计时5秒功能,在“登录”和“注册”页面也有相似功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Swift中初始化方法的顺序介绍

    Swift中初始化方法的顺序介绍

    这篇文章主要介绍了Swift中初始化方法的顺序介绍,本文介绍的是了类的初始化方法,需要的朋友可以参考下
    2015-01-01
  • Combine中错误处理和Scheduler使用详解

    Combine中错误处理和Scheduler使用详解

    这篇文章主要为大家介绍了Combine中错误处理和Scheduler使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Swift 3.0基础学习之扩展

    Swift 3.0基础学习之扩展

    扩展是向一个已有的类、结构体或枚举类型添加新的功能(在swift中扩展没有名字)。相当于Objective-C中Category(OC中可以有名字的,而且只能扩展类)。这篇文章主要介绍了Swift 3.0基础学习之扩展的相关资料,需要的朋友可以参考下。
    2017-03-03
  • Swift进阶教程Mirror反射示例详解

    Swift进阶教程Mirror反射示例详解

    这篇文章主要为大家介绍了Swift进阶教程Mirror反射示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论