Valley,一个用Swift 4编写的iOS文件下载器
- 图像异步下载。
- LRU 缓存管理概念
- 允许配置缓存大小。
- 为UIImageView提供扩展
- 提供闭包属性操作和错误处理。
待办事项列表
- 内存缓存
- 磁盘存储缓存
- 改进缓存项目大小
- 新增扩展(如WKWebView)
- Travis集成
设置
使用CocoaPods设置(iOS 10+)
如果你正在使用CocoaPods,请将此文本添加到Podfile中并运行pod install
命令。
use_frameworks!
target 'Your target name'
pod 'Valley'
用法
-
在您的代码中添加
import Valley
。 -
从您的UIImageView实例,您可以简单地
imageView.valleyImage(url: "https://yourwebseite.com/img.jpeg")
- 下载其他类型文件,例如
// JSON
ValleyFile<[[String: Any]]>.request(url: "https://yourwebsite.com/data.json") { (json) in }
// Data to fill a webview with a PDF
ValleyFile<Data>.request(url: "https://yourwebsite.com/myfile.pdf") { (data) in }
取消下载
要手动取消下载,调用
let task = imageView.valleyImage(url: "https://yourwebseite.com/img.jpeg")
task.cancel()
提供占位图图像
您可以提供错误图像,在图像下载期间出现错误时使用。
imageView.valleyImage(url: "https://yourwebseite.com/img.jpeg", placeholder: image)
缓存
以下方法可从缓存中清除所有项
Valley.cache.clearCache()
设置
使用Valley.setup(capacity: Int)
来指定缓存的容量(字节数)。
演示应用
此iOS演示应用展示了如何在集合视图中使用Valley加载图像以及如何加载JSON等文件。
替代方案
以下是Swift的其他图像下载库列表。
- cbot/Vincent
- daltoniam/Skeets
- Haneke/HanekeSwift
- hirohisa/ImageLoaderSwift
- natelyman/SwiftImageLoader
- onevcat/Kingfisher
- zalando/MapleBacon
- evgenyneu/moa
- kean/Nuke
许可证
Valley在MIT许可证下发布。
欢迎反馈
如果你注意到任何问题,卡住了或者只是想聊聊,欢迎创建一个问题。我会很高兴帮助你。