页码数组
页码数组是一个通用的 Swift 数据结构,可帮助您在(但不限于)UITableViews、UICollectionViews 和 UIPageViewControllers 中实现分页机制。
它是 Objective-C 版本的等价物 AWPagedArray
的 Swift 版本,该版本被用于实现博客文章 流畅分页 - 无更多跳转滚动 中描述的技术。
页码数组表示按页存储的可选元素列表。它实现了所有熟悉的 Swift 集合协议,因此您的数据源可以像使用常规数组一样使用它,同时提供了一个易于使用的 API 来设置检索到的数据页。
// Initialize
var pagedArray = PagedArray<String>(count: 200, pageSize: 20)
// Set data pages
pagedArray.set(elements: ["A" ... "T"], forPage: 1)
// Retrieve data like a normal array containing optional elements
pagedArray.count // 200
pagedArray[0] // "A"
pagedArray[100] // nil
// Iterate
for element: String? in pagedArray {
// Do magic
}
// Map, filter reduce
pagedArray.filter{ $0 != nil }.map{ $0! }.reduce("", combine:+) // "ABCDE..."
// Convert to array
Array(pagedArray) // ["A", "B", ... nil, nil]
安装
嵌入式框架要求最低部署目标为 iOS 8 或 OS X Mavericks。
要使用 iOS 7 目标的项目中的 PagedArray,您必须直接在您的项目中包含 PagedArray.swift
源文件。
Cocoapods
要使用 Cocoapods 将 PagedArray 集成到 Xcode 项目中,请在 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'PagedArray'
然后,运行以下命令:
$ pod install
Carthage
Carthage 是一个去中心化的依赖管理器,它可以自动化地将框架添加到您的 Cocoa 应用程序中。
您可以使用下面的命令通过 Homebrew 安装 Carthage:
$ brew update
$ brew install carthage
要使用 Carthage 将 PagedArray 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它。
github "MrAlek/PagedArray"
演示
包含的示例项目展示了一个使用分页数据的 UITableViewController
演示,它可以调整显示大量行。
测试
数据结构经过包含的 XCUnit 测试的彻底测试,但不提供任何保证。
许可证
PagedArray 适用于 MIT 许可证。更多信息请参阅 LICENSE 文件。