Kingfisher 是一个功能强大的纯 Swift 库,用于从 Web 下载和缓存图像

Kingfisher 是一个功能强大的纯 Swift 库,用于从 Web 下载和缓存图像

2022-12-12 0 1,691
资源编号 49634 最近更新 2022-12-12
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的Kingfisher 是一个功能强大的纯 Swift 库,用于从 Web 下载和缓存图像。

Kingfisher 是一个功能强大的纯 Swift 库,用于从 Web 下载和缓存图像

Kingfisher它使您有机会在下一个应用程序中使用纯 Swift 方式处理远程图像。

Kingfisher特征

  • 异步图像下载和缓存。
  • 从URLSession基于网络或本地提供的数据加载图像。
  • 提供有用的图像处理器和过滤器。
  • 内存和磁盘的多层混合缓存。
  • 对缓存行为的精细控制。可定制的到期日期和大小限制。
  • 可取消下载和自动重用以前下载的内容以提高性能。
  • 独立组件。根据需要分别使用下载器、缓存系统和图像处理器。
  • 预取图像并从缓存中显示它们以提升您的应用程序。
  • UIImageView, NSImageView, NSButton, UIButton, NSTextAttachment,和的扩展名WKInterfaceImage,用于直接从 URL 设置图像。TVMonogramViewCPListItem
  • 设置图像时内置过渡动画。
  • 加载图像时可自定义的占位符和指示器。
  • 易于扩展的图像处理和图像格式。
  • 低数据模式支持。
  • SwiftUI 支持。

Kingfisher

import Kingfisher

let url = URL(string: "https://example.com/image.png")
imageView.kf.setImage(with: url)

Kingfisher 将从 下载图像url,将其发送到内存缓存和磁盘缓存,并以imageView. 当您稍后使用相同的 URL 设置它时,图像将从缓存中检索并立即显示。

如果您使用 SwiftUI,它也可以工作:

var body: some View {
    KFImage(URL(string: "https://example.com/image.png")!)
}

一个更高级的例子

借助强大的选项,您可以用 Kingfisher 以简单的方式完成艰巨的任务。例如,下面的代码:

  • 下载高分辨率图像。
  • 对其进行下采样以匹配图像视图大小。
  • 使其以给定的半径转角。
  • 下载时显示系统指示器和占位符图像。
  • 准备好后,它会以“淡入”效果对小缩略图图像进行动画处理。
  • 原始的大图像也被缓存到磁盘以供以后使用,以避免在详细视图中再次下载它。
  • 任务完成时会打印控制台日志,无论是成功还是失败。
let url = URL(string: "https://example.com/high_resolution_image.png")
let processor = DownsamplingImageProcessor(size: imageView.bounds.size)
             |> RoundCornerImageProcessor(cornerRadius: 20)
imageView.kf.indicatorType = .activity
imageView.kf.setImage(
    with: url,
    placeholder: UIImage(named: "placeholderImage"),
    options: [
        .processor(processor),
        .scaleFactor(UIScreen.main.scale),
        .transition(.fade(1)),
        .cacheOriginalImage
    ])
{
    result in
    switch result {
    case .success(let value):
        print("Task done for: \(value.source.url?.absoluteString ?? "")")
    case .failure(let error):
        print("Job failed: \(error.localizedDescription)")
    }
}

方法链

如果您不是kf扩展的粉丝,您也可以更喜欢使用KF构建器并链接方法调用。下面的代码做同样的事情:

// Use `kf` extension
imageView.kf.setImage(
    with: url,
    placeholder: placeholderImage,
    options: [
        .processor(processor),
        .loadDiskFileSynchronously,
        .cacheOriginalImage,
        .transition(.fade(0.25)),
        .lowDataMode(.network(lowResolutionURL))
    ],
    progressBlock: { receivedSize, totalSize in
        // Progress updated
    },
    completionHandler: { result in
        // Done
    }
)

// Use `KF` builder
KF.url(url)
  .placeholder(placeholderImage)
  .setProcessor(processor)
  .loadDiskFileSynchronously()
  .cacheMemoryOnly()
  .fade(duration: 0.25)
  .lowDataModeSource(.network(lowResolutionURL))
  .onProgress { receivedSize, totalSize in  }
  .onSuccess { result in  }
  .onFailure { error in }
  .set(to: imageView)

更好的是,如果以后你想切换到 SwiftUI,只需将KF上面的内容更改为KFImage,你就完成了:

struct ContentView: View {
    var body: some View {
        KFImage.url(url)
          .placeholder(placeholderImage)
          .setProcessor(processor)
          .loadDiskFileSynchronously()
          .cacheMemoryOnly()
          .fade(duration: 0.25)
          .lowDataModeSource(.network(lowResolutionURL))
          .onProgress { receivedSize, totalSize in  }
          .onSuccess { result in  }
          .onFailure { error in }
    }
}

要求

  • iOS 12.0+ / macOS 10.14+ / tvOS 12.0+ / watchOS 5.0+(如果您只使用 UIKit/AppKit)
  • iOS 14.0+ / macOS 11.0+ / tvOS 14.0+ / watchOS 7.0+(如果你在 SwiftUI 中使用它)
  • Swift 5.0+

安装指南

Swift 包管理器

  • 选择文件 > Swift 包 > 添加包依赖项。https://github.com/onevcat/Kingfisher.git在“选择包存储库”对话框中输入。
  • 在下一页中,将版本解析规则指定为“Up to Next Major”,最早版本为“7.0.0”。
  • 在 Xcode 检查源代码并解析版本后,您可以选择“Kingfisher”库并将其添加到您的应用程序目标中。
Kingfisher 是一个功能强大的纯 Swift 库,用于从 Web 下载和缓存图像

Cocoa

CocoaPods是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它:

$ gem install cocoapods

要使用 CocoaPods 将 Kingfisher 集成到您的 Xcode 项目中,请将其指定为您的Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '12.0'
use_frameworks!

target 'MyApp' do
  # your other pod
  # ...
  pod 'Kingfisher', '~> 7.0'
end

然后,运行以下命令:

$ pod install

从 CocoaPods 安装任何内容后,您应该打开{Project}.xcworkspace而不是打开。{Project}.xcodeproj

Carthage

Carthage是 Cocoa 应用程序的去中心化依赖管理器。要安装 carthage 工具,您可以使用Homebrew。

$ brew update
$ brew install carthage

要使用 Carthage 将 Kingfisher 集成到您的 Xcode 项目中,请在您的Cartfile:

github "onevcat/Kingfisher" ~> 7.0

然后,运行以下命令来构建 Kingfisher 框架:

$ carthage update Kingfisher --platform iOS
# Or `--platform macOS`, `--platform tvOS`, `--platform watchOS`

最后,您需要手动设置您的 Xcode 项目以添加 Kingfisher 框架:

  • 在应用程序目标的“常规”设置选项卡上,在“链接框架和库”部分中,从磁盘上的 Carthage/Build 文件夹中拖放要使用的每个框架。
  • 在应用程序目标的“Build Phases”设置选项卡上,单击“+”图标并选择“New Run Script Phase”。创建一个包含以下内容的运行脚本:
/usr/local/bin/carthage copy-frameworks
  1. 在“输入文件”下添加要使用的框架的路径:
$(SRCROOT)/Carthage/Build/iOS/Kingfisher.framework
  1. 将复制的框架的路径添加到“输出文件”:
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Kingfisher.framework

—END—

开源协议:MIT license

资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 Kingfisher 是一个功能强大的纯 Swift 库,用于从 Web 下载和缓存图像 https://www.7claw.com/49634.html

七爪网源码交易平台

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务