Swift快速集成下拉刷新和上拉加载更多

ESPullToRefresh

ESPullToRefresh是一个非常易于开发者使用的下拉刷新和加载更多组件。通过一个UIScrollView的扩展,可以轻松为UIScrollView的所有子类添加下拉刷新功能。 如果你想定制组件的UI样式,只要实现指定的协议方法即可。 

如何安装

使用CocoaPods

pod "ESPullToRefresh"

手动安装

git clone https://github.com/eggswift/pull-to-refresh.git
open ESPullToRefresh

开始使用

使用默认样式 效果如下:


example_default.gif

设置默认下拉刷新组件

self.tableView.es_addPullToRefresh {
    [weak self] in
    /// 在这里做刷新相关事件
    /// ...
    /// 如果你的刷新事件成功,设置completion自动重置footer的状态
    self?.tableView.es_stopPullToRefresh(completion: true)
    /// 设置ignoreFooter来处理不需要显示footer的情况
    self?.tableView.es_stopPullToRefresh(completion: true, ignoreFooter: false)
    })
}

设置默认加载更多组件

self.tableView.es_addInfiniteScrolling {
    [weak self] in
    /// 在这里做加载更多相关事件
    /// ...
    /// 如果你的加载更多事件成功,调用es_stopLoadingMore()重置footer状态
    self?.tableView.es_stopLoadingMore()
    /// 通过es_noticeNoMoreData()设置footer暂无数据状态
    self?.tableView.es_noticeNoMoreData()
    })
}

使用自定义样式 效果如下:


example_meituan.gif

注: 加载动画资源来自美团 iOS app。


example_wechat.gif

ESPullToRefresh通过ESRefreshProtocolESRefreshAnimatorProtocol来约束刷新组件的使用,自定义的组件必须遵守这两个协议,并实现协议中的方法。

设置自定义下拉刷新组件

func es_addPullToRefresh(animator animator: protocol<ESRefreshProtocol, ESRefreshAnimatorProtocol>, 
handler: ESRefreshHandler)

设置自定义加载更多组件

func es_addInfiniteScrolling(animator animator: protocol<ESRefreshProtocol, ESRefreshAnimatorProtocol>, 
handler: ESRefreshHandler)

移除方法

func es_removeRefreshHeader()
func es_removeRefreshFooter()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值