POSInfiniteScroll
示例
要运行示例项目,首先克隆仓库,然后从演示目录运行 pod install
。
要求
- Swift 5
- iOS 10 或更高版本
安装
CocoaPods
POSInfiniteScroll 可通过 CocoaPods 获得。安装它,只需在 Podfile 中添加以下行
pod 'POSInfiniteScroll'
Carthage
将 POSInfiniteScroll 添加到您的 Cartfile
github "postolaki/posinfinitescroll"
然后运行
carthage update or carthage update --use-xcframeworks
Swift 包管理器
Swift 包管理器是一个用于自动化 Swift 代码分发工具,它已集成到 swift 编译器。
一旦您设置了 Swift 包,将 POSInfiniteScroll 作为依赖项添加就像将其添加到 Package.swift 文件的 dependencies 值一样简单。
dependencies: [
.package(url: "https://github.com/postolaki/POSInfiniteScroll.git")
]
import POSInfiniteScroll
无限滚动手势
// setup infinite scroll
tableView.addInfiniteScroll { tableView in
// finish infinite scroll animation
tableView.finishInfiniteScroll()
}
collectionView.addInfiniteScroll { collectionView in
// finish infinite scroll animation
collectionView.reloadDataAndFinishInfIniteScroll()
}
tableView.shouldRemoveInfiniteScrollHandler = { _ in
return condition to remove infinite scroll
}
公共方法和属性
func addInfiniteScroll(_ completion: @escaping (UITableView) -> Void)
func addInfiniteScroll(_ completion: @escaping (UICollectionView) -> Void)
func finishInfiniteScroll(_ completion: (() -> Void)? = nil)
func removeInfiniteScroll()
var infiniteScrollTriggerOffset: CGFloat
var shouldRemoveInfiniteScrollHandler: () -> Bool
自定义指示器
自定义指示器必须符合协议 SpinnerViewProtocol
protocol SpinnerViewProtocol: UIView {
func startAnimating()
func stopAnimating()
}
var infiniteScrollSpinnerView: SpinnerViewProtocol?
下拉刷新
// setup pull to refresh
tableView.addPullToRefresh { tableView in
// finish pull to refresh animation
tableView.finishPullToRefresh()
}
collectionView.addPullToRefresh { collectionView in
// finish pull to refresh animation
collectionView.reloadDataAndFinishPullToRefresh()
}
公共方法和属性
func beginPullToRefresh(_ completion: (() -> Void)? = nil)
func addPullToRefresh(_ completion: @escaping (UITableView) -> Void)
func addPullToRefresh(_ completion: @escaping (UICollectionView) -> Void)
func finishPullToRefresh(_ completion: (() -> Void)? = nil)
func removePullToRefresh()
var pullToRefreshTriggerOffset: CGFloat
自定义指示器
自定义指示器必须符合协议 PullToRefreshSpinnerViewProtocol
protocol PullToRefreshSpinnerViewProtocol: SpinnerViewProtocol {
var progress: CGFloat { get set }
var isAnimating: Bool { get }
}
var pullToRefreshSpinnerView: PullToRefreshSpinnerViewProtocol?
作者
授权
POSInfiniteScroll 在 MIT 许可证下可用。