PaginationManager 1.0.1

PaginationManager 1.0.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2016年10月
SPM支持 SPM

Taimur Ayaz 维护。



  • TaimurAyaz

PaginationManager

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 的委托方法,请使用第一个初始化器。这将设置 PaginationManagerscrollView 的委托,并将委托方法传递给原始委托。

init(direction:thresholdType:)

  • direction scrollViews 的方向

  • thresholdType 分页管理器的 thresholdType。它的默认值为 .constant(value: PaginationManagerConstantThresholdScreenDimension)。见下文的“定制”。

如果使用此初始化器,需要在 scrollViewscrollViewDidScroll: 委托回调中显式调用 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)

见下文的“委托回调”。

定制

您可以通过以下方式自定义分页管理器的行为

PaginationManagerDirection : 枚举

您需要在初始化时为分页管理器提供滚动方向。这个方向在之后**不能**被修改,因为分页管理器的核心行为依赖于它。

PaginationManagerThresholdType : 枚举

此属性控制分页管理器的阈值类型。它提供了以下类型的阈值

  • 百分比(value:)

此类型定义了一个基于滚动百分比的阈值。它接受一个百分比值。此值应在 0.01.0 之间。

  • 常数(value:)

此类型定义了一个基于 scrollView 内容末尾的固定量的阈值。它需要一个固定值。此值应大于 0.0。这是 PaginationManager 的默认类型,其默认值定义为 PaginationManagerConstantThresholdScreenDimension,它根据分页管理器的 direction 获取最大设备屏幕尺寸。

代理回调

PaginationManagerDelegate 仅提供一种方法

func paginationManagerDidExceedThreshold(manager: PaginationManager, reset: PaginationManagerResetBlock)

这是一个必需的方法。在完成对此方法的实现后,您**必须**调用 reset 块。该块接受一个 bool 值,告诉管理器是否加载了新项目。一个例子是异步加载图像,然后在加载新图像后调用 reset(true)。实现调用 reset 块的系统是为了限制管理器不要多次通知接收器。

示例

已包含一个示例项目。它包含分页管理器的基本实现

欢迎提出问题/PR :)

许可

MIT 许可协议

版权所有 © 2016 Taimur Ayaz

在此特此免费授予任何获取本软件及其相关文档文件(以下简称“软件”)的副本的任何人,无限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、转授权和/或销售软件副本的权利,并允许向软件提供副本的个人这样做,前提是

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不受侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任是由于违约、侵权或其他方式产生,无论是否与本软件或其使用或操作有关。