PaginationManager 简化了将分页功能添加到各种 scrollViews 的过程。
PaginationManager
只兼容 Swift 2.3。Swift 3.0 支持即将推出。
PaginationManager.swift
复制到您的项目中如果您使用 CocoaPods
,您需要通过添加以下内容将 PaginationManager
作为模块导入到您的类中
import PaginationManager
您需要创建一个 PaginationManager
属性(您需要强引用)
var paginationManager: PaginationManager?
PaginationManager
提供了两个初始化器
init(scrollView:direction:thresholdType:)
scrollView
分页管理器中的 scrollViews
direction
scrollViews 的方向
thresholdType
分页管理器的 thresholdType。它的默认值为 .constant(value: PaginationManagerConstantThresholdScreenDimension)
。见下文的“阈类型”。
如果您想钩入 scrollView
的委托方法,请使用第一个初始化器。这将设置 PaginationManager
为 scrollView
的委托,并将委托方法传递给原始委托。
init(direction:thresholdType:)
direction
scrollViews 的方向
thresholdType
分页管理器的 thresholdType。它的默认值为 .constant(value: PaginationManagerConstantThresholdScreenDimension)
。见下文的“定制”。
如果使用此初始化器,需要在 scrollView
的 scrollViewDidScroll:
委托回调中显式调用 scrollViewDidScroll:
在 PaginationManager
上。
PaginationManager
还包括以下用于 Objective-C 互操作的静态初始化器。
constantThresholdManager(forScrollView:direction:constant:)
constantThresholdManager(withDirection:constant:)
percentageThresholdManager(forScrollView:direction:percentage:)
percentageThresholdManager(withDirection:percentage:)
您还需要分配 PaginationManager
的委托,如下所示
paginationManager?.delegate = self
同时确保符合 PaginationManagerDelegate
func paginationManagerDidExceedThreshold(manager: PaginationManager, reset: PaginationManagerResetBlock)
见下文的“委托回调”。
您可以通过以下方式自定义分页管理器的行为
您需要在初始化时为分页管理器提供滚动方向。这个方向在之后**不能**被修改,因为分页管理器的核心行为依赖于它。
此属性控制分页管理器的阈值类型。它提供了以下类型的阈值
此类型定义了一个基于滚动百分比的阈值。它接受一个百分比值。此值应在 0.0
和 1.0
之间。
此类型定义了一个基于 scrollView
内容末尾的固定量的阈值。它需要一个固定值。此值应大于 0.0
。这是 PaginationManager
的默认类型,其默认值定义为 PaginationManagerConstantThresholdScreenDimension
,它根据分页管理器的 direction
获取最大设备屏幕尺寸。
PaginationManagerDelegate
仅提供一种方法
func paginationManagerDidExceedThreshold(manager: PaginationManager, reset: PaginationManagerResetBlock)
这是一个必需的方法。在完成对此方法的实现后,您**必须**调用 reset
块。该块接受一个 bool
值,告诉管理器是否加载了新项目。一个例子是异步加载图像,然后在加载新图像后调用 reset(true)
。实现调用 reset
块的系统是为了限制管理器不要多次通知接收器。
已包含一个示例项目。它包含分页管理器的基本实现
欢迎提出问题/PR :)
MIT 许可协议
版权所有 © 2016 Taimur Ayaz
在此特此免费授予任何获取本软件及其相关文档文件(以下简称“软件”)的副本的任何人,无限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、转授权和/或销售软件副本的权利,并允许向软件提供副本的个人这样做,前提是
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不受侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任是由于违约、侵权或其他方式产生,无论是否与本软件或其使用或操作有关。