13,083
stars
+2+1+11
1,539
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions
README
---------------- 一个数据驱动的UICollectionView框架,用于构建快速灵活的列表。 | | 主要特性 | ----------|----------------- &128581; | 无须直接调用 performBatchUpdates(_:, completion:) 或 reloadData() &127968; | 更好的可复用 cell 和组件体系结构 &128288; | 创建具有多个数据类型的列表 &128273; | 解耦的 Diff 算法 &9989; | 完全的单元测试 &128269; | 可自定义数据模型的 Diff 行为 &128241; | 简化并维持UICollectionView的核心特性 &128640; | 可扩展的 API 设计 &128038; | Objective-C 编写,同时完全支持 Swift IGListKit由 Instagram 工程师 创建 并且&10084;&65039; 维护。 我们在 Instagram 中使用开源的main主版本。 多语言翻译 英文README 要求 - Swift 5.1+ - iOS 11.0+ - tvOS 11.0+ - macOS 10.13+ (diffing algorithm components only) - Interoperability with Swift 3.0+ 安装 CocoaPods 推荐使用CocoaPods来进行安装,只需添加如下语句到你的Podfile文件中: ruby pod 'IGListKit', '~ 5.2.0' Carthage 对于Carthage, 添加如下到Cartfile文件中: ogdl github "Instagram/IGListKit" ~ 5.2.0 对于高级用法, 查阅 安装指南。 入门指南 bash $ git clone https://github.com/Instagram/IGListKit.git $ cd IGListKit/ $ ./scripts/setup.sh - 入门指南 - Ray Wenderlich's IGListKit Tutorial: Better UICollectionViews - 样例项目 - Ryan Nystrom's talk at try! Swift NYC (Note: this talk was for an earlier version. Some APIs have changed.) - Migrating an UITableView to IGListCollectionView, by Rodrigo Cavalcante - Keeping data fresh in Buffer for iOS with AsyncDisplayKit, IGListKit & Pusher, Andy Yates, Buffer 文档 这里可以查阅文档。文档由jazzy生成,托管在 GitHub-Pages。 运行位于仓库根目录下的./scripts/build_docs.sh脚本来生成文档。 远景 想要了解IGListKit的长期目标和愿景,请阅读Vision。 贡献 请查看CONTRIBUTING来了解如何参与贡献。在 Instagram,我们每日都会同步开源版本的IGListKit,因此我们总是在测试最新的改动。但是这也需要所有的改动都需要经历完全的测试,并且遵守我们的开发风格。 我们有一系列新人任务,来帮助新人学习如何参入其中。 License IGListKit 遵循MIT-licensed。 /Examples/目录下的文件,在文档里指明了它们各自所遵循的协议。文档遵循CC-BY-4.0。