一个即插即用的 iOS 库,无需编写代码即可防止键盘遮挡输入框。
Instagram/IGListKit
Instagram 开源的数据驱动 UICollectionView 框架,用于构建高效灵活的 iOS 列表。
- Star
- 13,080
- Fork
- 1,539
- 未关闭 Issue
- 65
- 最近提交
- 4天前
这是什么?
IGListKit 是一个基于 UICollectionView 构建列表的 Objective-C 框架。开发者只需描述数据,框架会自动计算新旧数据之间的差异并更新视图,无需手动调用 performBatchUpdates 或 reloadData。
框架通过 section controller 将数据模型与视图逻辑分离,同一个集合中可以容纳多种数据类型,并支持可复用的 cell 和组件。其差异计算算法与其他模块解耦,开发者还可以自定义模型的比较方式。框架支持 iOS、tvOS,差异算法组件也可用于 macOS,并与 Swift 完全互操作。
该项目由 Instagram 工程团队维护,并用于 Instagram 应用。支持通过 CocoaPods、Carthage 和 Swift Package Manager 安装,仓库的 Examples 目录提供示例应用。
核心功能
- 01自动计算数据差异并对 UICollectionView 应用批量更新
- 02通过 section controller 支持同一集合中的多种数据类型
- 03可自定义模型的差异比较行为
- 04差异算法与框架解耦,可独立使用
- 05与 Swift 完全互操作
适用场景
- 在 iOS 应用中构建数据频繁变化的信息流或混合内容列表
- 替代现有集合视图中手动调用 performBatchUpdates 和 reloadData 的逻辑
- 将基于表格的界面迁移到基于集合的布局
快速上手
- 1
将 IGListKit pod 添加到 Podfile
pod 'IGListKit', '~> 5.2.0' - 2
在 Xcode 中通过包地址添加 Swift Package
- 3
打开 Examples 目录中的示例应用进行体验
使用前须知
- 仅支持 iOS、tvOS 和 macOS,其中 macOS 仅包含差异比较组件。
- 需要 iOS 11.0 或更高版本以及 Swift 5.1 或更高版本。
- 使用 Objective-C 编写,Swift 用户需依赖互操作。
标签
常见问题
- IGListKit 是什么?
- Instagram 开源的数据驱动 UICollectionView 框架,用于构建高效灵活的 iOS 列表。 IGListKit 是一个基于 UICollectionView 构建列表的 Objective-C 框架。开发者只需描述数据,框架会自动计算新旧数据之间的差异并更新视图,无需手动调用 performBatchUpdates 或 reloadData。
- IGListKit 可以免费使用吗?用的什么许可证?
- IGListKit 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- IGListKit 还在维护吗?
- 活跃维护中。IGListKit 最近一次提交是在 2026年11月3日。
- IGListKit 适合用来做什么?
- 在 iOS 应用中构建数据频繁变化的信息流或混合内容列表 替代现有集合视图中手动调用 performBatchUpdates 和 reloadData 的逻辑 将基于表格的界面迁移到基于集合的布局
- IGListKit 怎么安装和运行?
- 将 IGListKit pod 添加到 Podfile: pod 'IGListKit', '~> 5.2.0' 在 Xcode 中通过包地址添加 Swift Package 打开 Examples 目录中的示例应用进行体验
- 在哪里获取 IGListKit?
- 源代码和安装说明在 GitHub 上:https://github.com/Instagram/IGListKit
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 iOS 的图片裁剪视图控制器,支持旋转、圆形裁剪和固定比例,交互与系统相册编辑器相近。
一个 iOS/tvOS 框架,把界面的排版与绘制移到后台线程执行,让滚动更流畅。
React Native 相机库,支持拍照录像、二维码/条码扫描和实时帧处理,覆盖 iOS 与 Android。
跨平台 UI 框架,用声明式 TypeScript 编写界面,直接编译为 iOS、Android 和 macOS 原生视图。
为 React Native 应用提供 Lottie 启动动画,在 JS 包加载前即由原生层播放。