中文介绍
ESPullToRefresh 是一个易于使用的组件,为开发者提供了 下拉刷新 和 无限滚动 的实现。通过扩展到 UIScrollView
,您可以轻松地为 UIScrollView
的任何子类添加下拉刷新和无限滚动功能。如果您想要自定义其 UI 风格,只需遵守指定的协议即可。
要求
- Xcode 8 或更高版本
- iOS 8.0 或更高版本
- ARC
- Swift 5.0 或更高版本
特性
- 支持
UIScrollView
及其子类UICollectionView
、UITableView
、UITextView
- 下拉刷新和上拉加载更多
- 支持自定义自己的风格
示例
在 Xcode 中下载并运行 ESPullToRefreshExample 项目以查看 ESPullToRefresh 的实际效果。
安装
CocoaPods
pod "ESPullToRefresh"
Carthage
github "eggswift/pull-to-refresh"
手动安装
git clone https://github.com/eggswift/pull-to-refresh.git
open ESPullToRefresh
用法
默认样式
将 ESPullToRefresh
添加到您的项目中
import ESPullToRefresh
添加默认的下拉刷新
self.tableView.es.addPullToRefresh {
[unowned self] in
/// Do anything you want...
/// ...
/// Stop refresh when your job finished, it will reset refresh footer if completion is true
self.tableView.es.stopPullToRefresh(completion: true)
/// Set ignore footer or not
self.tableView.es.stopPullToRefresh(completion: true, ignoreFooter: false)
}
添加默认的无限滚动
self.tableView.es.addInfiniteScrolling {
[unowned self] in
/// Do anything you want...
/// ...
/// If common end
self.tableView.es.stopLoadingMore()
/// If no more data
self.tableView.es.noticeNoMoreData()
}
自定义样式
效果
PS: 加载效果源自美团iOS应用。
自定义刷新需要遵守
添加自定义下拉刷新
func es.addPullToRefresh(animator animator: protocol<ESRefreshProtocol, ESRefreshAnimatorProtocol>, handler: ESRefreshHandler)
添加自定义无限滚动
func es.addInfiniteScrolling(animator animator: protocol<ESRefreshProtocol, ESRefreshAnimatorProtocol>, handler: ESRefreshHandler)
过期和自动刷新
ESPullToRefresh支持最新过期时间和缓存刷新时间,您需要设置一个refreshIdentifier
到您的UIScrollView。
scrollView.refreshIdentifier = "Your Identifier" // Set refresh identifier
scrollView.expriedTimeInterval = 20.0 // Set the expiration interval
您可以使用es.autoPullToRefresh()
方法,当超过最后一次刷新间隔的时间后自动刷新。
scrollView.es.autoPullToRefresh()
let expried = scrollView.espried // expired or not
删除
func es.removeRefreshHeader()
func es.removeRefreshFooter()
资助者
您可以通过查询我们的资助者页面来支持该项目。只需单击一下。
此广告由GitAds发布
关于
ESPullToRefresh由Vincent Li开发和维护。如果您在使用ESPullToRefresh时有任何问题或问题,欢迎问题。
如果您想为ESPullToRefresh做出贡献,请提交拉取请求,我将尽快处理。
许可证
MIT许可(MIT)
版权所有(c)2013-2020 eggswift
在此特此许可,无需支付任何费用,任何人获取本软件及其相关文档副本(“软件”),均可不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许软件提供方这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的副本或实质部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者对任何索赔、损害或其他责任,不论基于合同、侵权或其他原因,均不承担任何责任,这些索赔、损害或其他责任源于、产生于或与软件或对软件的使用或其他方式相关。