Vulcan
https://github.com/jinSasaki/Vulcan
Multi image downloader with priority in Swift
Swift多图片下载器
Very light
1、轻量级
Multi image download with priority
2、具有优先级的多图像下载
Caching images
3、图片缓存
Pure Swift
4、纯Swift开发
Composable image
5、可组合图像
Support webp
Now supported by Carthage only. See SwiftWebP.
Single downloadMulti download with priorityInstallationCocoaPods
Setup CocoaPods:
$ gem install cocoapodsCocoaPods 1.1.0+ is required to build Vulcan
Podfile
platform :ios, '8.0' use_frameworks! target '<Your Target Name>' do pod 'Vulcan' endThen, run the following command:
$ pod installCarthageSetup carthage:
$ brew update $ brew install carthageCartfile
github 'jinSasaki/Vulcan'UsageImage downloading and showimport Vulcan // Single downloading imageView.vl_setImage(url: URL(string: '/path/to/image')!) // Multi downloading // This image will be overridden by the image of higher priority URL. imageView.vl_setImage(urls: [ .url(URL(string: '/path/to/image')!, priority: 100), .url(URL(string: '/path/to/image')!, priority: 1000) ])WebP imageAdd SwiftWebP.framework.
import Vulcan import SwiftWebP extension WebPDecoder: ImageDecoder { public func decode(data: Data, response: HTTPURLResponse, options: ImageDecodeOptions?) throws -> Image { let contentTypes = response.allHeaderFields.filter({ ($0.key as? String ?? '').lowercased() == 'content-type' }) guard let contentType = contentTypes.first, let value = contentType.value as? String, value == 'image/webp', let image = WebPDecoder.decode(data) else { return try DefaultImageDecoder().decode(data: data, response: response, options: options) } return image } } // Set decoder to shared ImageDownloader UIImageView.vl_sharedImageDownloader.decoder = WebPDecoder() // Request image with URL imageView.vl_setImage(url: URL(string: '/path/to/image')!)Requirements 环境需求iOS 8.0+
Xcode 8.1+
Swift 3.0.1+