面向苹果平台的 Swift 图片加载系统,支持缓存、图片处理与 SwiftUI/UIKit 组件。
onevcat/Kingfisher
一个轻量的纯 Swift 图片下载与缓存库,用于 iOS、macOS 和 SwiftUI 应用中加载远程图片。
- Star
- 24,403
- Fork
- 2,774
- 未关闭 Issue
- 164
- 最近提交
- 7天前
这是什么?
Kingfisher 是一个用于在苹果平台应用中从远程 URL 加载图片的 Swift 库。调用 imageView.kf.setImage(with:) 等方法即可完成下载、显示,图片会同时写入内存缓存和磁盘缓存,之后再次请求同一地址时直接从缓存读取。
除基础加载外,它还提供图片处理器和滤镜、缓存过期时间与大小限制、可取消的下载、预取、占位图、加载指示器和过渡动画。下载器、缓存和处理器可以单独使用。除 UIKit 和 AppKit 的视图与按钮扩展外,也通过 KFImage 支持 SwiftUI。
核心功能
- 01异步下载图片,并提供内存与磁盘两级缓存
- 02内置图片处理器和滤镜,如降采样和圆角
- 03可配置缓存过期时间与大小上限
- 04支持取消下载和图片预取
- 05为 UIKit、AppKit 和 SwiftUI 图片视图提供扩展
适用场景
- 在 iOS 列表中显示远程商品图或头像
- 按目标视图尺寸加载大图以节省内存
- 在用户滚动到之前预取图片
快速上手
- 1
在 Xcode 中使用仓库地址添加 Swift Package 依赖
- 2
将 Kingfisher 添加到 CocoaPods 的 Podfile 中
- 3
将远程图片加载到图片视图中
imageView.kf.setImage(with: url)
使用前须知
- 仅适用于苹果平台(iOS、macOS、tvOS、watchOS、visionOS),需要 Swift。
- 当前开发分支需要 Xcode 26 和 Swift 6.2 及以上版本,比早期版本要求更新。
收录于专题
标签
常见问题
- Kingfisher 是什么?
- 一个轻量的纯 Swift 图片下载与缓存库,用于 iOS、macOS 和 SwiftUI 应用中加载远程图片。 Kingfisher 是一个用于在苹果平台应用中从远程 URL 加载图片的 Swift 库。调用 imageView.kf.setImage(with:) 等方法即可完成下载、显示,图片会同时写入内存缓存和磁盘缓存,之后再次请求同一地址时直接从缓存读取。
- Kingfisher 可以免费使用吗?用的什么许可证?
- Kingfisher 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- Kingfisher 还在维护吗?
- 活跃维护中。Kingfisher 最近一次提交是在 2026年10月18日。
- Kingfisher 适合用来做什么?
- 在 iOS 列表中显示远程商品图或头像 按目标视图尺寸加载大图以节省内存 在用户滚动到之前预取图片
- Kingfisher 怎么安装和运行?
- 在 Xcode 中使用仓库地址添加 Swift Package 依赖 将 Kingfisher 添加到 CocoaPods 的 Podfile 中 将远程图片加载到图片视图中: imageView.kf.setImage(with: url)
- 在哪里获取 Kingfisher?
- 源代码和安装说明在 GitHub 上:https://github.com/onevcat/Kingfisher
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
8684575SwiftMIT更新于 前天
为 Xcode 提供 GitHub Copilot 支持的 AI 编程助手,涵盖代码补全、对话与 Agent 模式。
63502066SwiftMIT更新于 6天前
macOS / iOS 文档问答应用,上传文件后可提问和生成摘要,AI 处理全部在本地设备完成。
1978SwiftMIT更新于 7个月前
一款免费开源的 macOS 应用,可在同一窗口中并排管理 Android 与 iOS 设备,支持镜像、控制和设置切换。
135+5 本周13SwiftMIT更新于 3天前
一个用于构建 Apple 平台应用的 Swift 库,提供统一的状态管理、可组合的功能模块与便于测试的副作用处理。
1.5万+3 本周1680SwiftMIT更新于 18天前