一个用于构建快速灵活列表的数据驱动 `UICollectionView` 框架。
主要特性 | |
---|---|
再也不需要调用 `performBatchUpdates(_:completion:)` 或 `reloadData()` | |
具有可重用单元格和组件的更好架构 | |
使用多种数据类型创建集合 | |
解耦的 diff 算法 | |
完全单元测试 | |
为您的模型自定义 diff 行为 | |
其核心是简单的 `UICollectionView` | |
可扩展的 API | |
使用 Objective-C 编写,并提供完整的 Swift 兼容支持 |
由 IGListKit
开发和维护,并由master
分支。
需求
- Xcode 9.0+
- iOS 9.0+
- tvOS 9.0+
- macOS 10.11+ (仅限 diffing 算法组件)
- 与 Swift 3.0+ 兼容性
安装
CocoaPods
首选的安装方法是使用 CocoaPods。 将以下内容添加到您的 `Podfile` 中:
pod 'IGListKit', '~> 4.0.0'
Carthage
针对 Carthage,请在您的 Cartfile
中添加以下内容
github "Instagram/IGListKit" ~> 4.0.0
关于高级用法,请参阅我们的 安装指南。
入门
$ git clone https://github.com/Instagram/IGListKit.git
$ cd IGListKit/
$ ./scripts/setup.sh
- 我们的 入门指南
- Ray Wenderlich 的 IGListKit 指南:更好的 UICollectionViews
- 我们的 示例项目
- Ryan Nystrom 在 try! Swift NYC 上的 演讲(注意:这个演讲是针对早期版本。一些 API 已经更改。)
- 由 Rodrigo Cavalcante 撰写的 将 UITableView 迁移到 IGListCollectionView
- Andy Yates 撰写的 使用 AsyncDisplayKit、IGListKit 和 Pusher 保持 Buffer for iOS 的数据最新
文档
您可以在以下位置找到 文档。文档由 jazzy 生成并在 GitHub-Pages 上托管。
要从源代码库的根目录运行 ./scripts/build_docs.sh
以重新生成文档。
愿景
有关 IGListKit
的长期目标及其“愿景”,请阅读我们的 愿景文档。
贡献
请参阅 CONTRIBUTING 文件了解如何提供帮助。在 Instagram,我们每天同步开源版本的 IGListKit
,因此我们总是在测试最新的更改。但这需要所有更改都经过彻底测试并遵循我们的样式指南。
我们有一系列入门任务,非常适合初学者开始参与并贡献。
许可证
IGListKit
遵循MIT许可证。
目录下的文件根据每个文件指定的许可证分别授权,文档授权CC-BY-4.0。