一个数据驱动的 UICollectionView
框架,用于构建快速灵活的列表。
主要特性 | |
---|---|
🙅 | 不再调用 performBatchUpdates(_:, completion:) 或 reloadData() |
🏠 | 更好的架构,具有可重用单元格和组件 |
🔠 | 使用多种数据类型创建集合 |
🔑 | 解耦的差异算法 |
✅ | 全面单元测试 |
🔍 | 为您的模型自定义差异行为 |
📱 | 核心的简单 UICollectionView |
🚀 | 可扩展的 API |
🐦 | 使用 Objective-C 编写,同时支持全 Swift 互操作性 |
由 Instagram 工程团队 使用 ❤️ 构建和维护的 IGListKit
。我们在 Instagram 应用中使用开源 main
分支。
- Xcode 11.0+
- iOS 11.0+
- tvOS 11.0+
- macOS 10.13+ (仅差异算法组件)
- 与 Swift 3.0+ 互操作
首选的安装方法是使用 CocoaPods。在您的 Podfile
中添加以下内容
pod 'IGListKit', '~> 4.0.0'
对于 Carthage,在您的 Cartfile
中添加以下内容
github "Instagram/IGListKit" ~> 4.0.0
对于 Swift 包管理器
To integrate using Xcode:
File -> Swift Packages -> Add Package Dependency
Enter package URL: https://github.com/Instagram/IGListKit, and select the latest release.
有关高级用法,请参阅我们的 安装指南.
通过打开 Examples
目录中的任何示例应用来尝试 IGListKit。
- 我们的 入门指南
- Ray Wenderlich 的 IGListKit 教程:更好的 UICollectionViews
- 我们的 示例项目
- Ryan Nystrom 在 try! Swift NYC 上的发言(注意:此发言针对的是早期版本。一些 API 已更改。)
- 由 Rodrigo Cavalcante编写的 将 UITableView 迁移到 IGListCollectionView
- Andy Yates 在 Buffer 上的文章(使用 AsyncDisplayKit、IGListKit & Pusher 保持 iOS 中的数据新鲜)
您可以在 此处找到文档。文档使用 jazzy 生成并在 GitHub-Pages 上托管。
要从根目录在仓库中重新生成文档,请运行 ./scripts/build_docs.sh
有关 IGListKit
的长期目标和“愿景”,请参阅我们的 Vision 文档。
请参阅CONTRIBUTING文件以了解如何提供帮助。在Instagram,我们每天同步开源版本的IGListKit
,所以我们在测试最新更改。但这需要对所有更改进行彻底测试并遵循我们的风格指南。
我们有入门任务,非常适合初学者参与并提供贡献。
IGListKit
采用MIT许可证。
存储在/Examples/
目录中的文件采用单独的许可证,具体可参考每个文件中的说明。文档采用CC-BY-4.0许可证。