Repolode
onevcat

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. 1

    在 Xcode 中使用仓库地址添加 Swift Package 依赖

  2. 2

    将 Kingfisher 添加到 CocoaPods 的 Podfile 中

  3. 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 数据每日更新。

相关项目