STXImageCache 1.0.2

STXImageCache 1.0.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2017年2月
SwiftSwift 版本3.0
SPM支持 SPM

Norbert Sroczyński 维护。



  • Norbert Sroczyński

codebeat badge

STXImageCache 是一个轻量级、纯 Swift、易于使用的图像下载和缓存库。它提供了方便的 UI 扩展。它受到了 Kingfisher 和 SDWebImage 等流行库的启发。

特性

  • [x] UI 扩展
  • [x] 异步图像下载器
  • [x] 可取消的下载任务
  • [x] 内存缓存
  • [x] 磁盘缓存
  • [x] 保证相同的 URL 不会多次下载
  • [x] 高性能
  • [x] 使用 GCD 和 ARC

要求

  • iOS 9.0 或更高版本
  • tvOS 9.0 或更高版本
  • watchOS 2.0 或更高版本
  • macOS 10.10 或更高版本
  • Xcode 8.0 或更高版本

入门

最简单用法

let url = URL(string: "image_url")!
imageView.stx.image(atURL: url)

高级用法

let url = URL(string: "image_url")!
let placeholder = UIImage(named: "placeholder")
let operation = imageView.stx.image(atURL: url, placeholder: placeholder, progress: { progress in
        // update progressView
    }, completion: { image, _ in
        // do image processing
        return image
    })

与 UITableViewCell 一起使用

import UIKit
import STXImageCache

final class Cell: UITableViewCell {
    var operation: STXImageOperation?
    @IBOutlet weak var progress: UIProgressView!

    override func prepareForReuse() {
        super.prepareForReuse()
        operation?.cancel()
    }

    func configure(withURL url: URL, placeholder: UIImage) {
        imageView?.image = nil
        progress.progress = 0
        self.progress.isHidden = false
        operation = imageView?.stx.image(atURL: url, placeholder: placeholder, progress: { progress in
            DispatchQueue.main.async {
                self.progress.setProgress(progress, animated: true)
            }
        }, completion: { image, _ in
            DispatchQueue.main.async {
                self.progress.isHidden = true
            }
            return image
        })
    }
}

作者

交流

  • 如果您 发现了错误,请打开一个问题。
  • 如果您 有功能请求,请打开一个问题。
  • 如果您 想要贡献,请提交一个拉取请求。

许可证

所有源代码都根据 MIT 许可 许可。