[iOS] Vulcan:支持优先级设置的轻量图片下载器工具库

Vulcan Multi image downloader with priority in Swift Features Very light Multi image download with

Vulcan

Multi image downloader with priority in Swift

Features

  • Very light
  • Multi image download with priority
  • Caching images
  • Pure Swift
  • Composable image
  • Support webp
    • Now supported by Carthage only. SeeSwiftWebP.
Single download Multi download with priority
[iOS] Vulcan:支持优先级设置的轻量图片下载器工具库 [iOS] Vulcan:支持优先级设置的轻量图片下载器工具库

Installation

CocoaPods

Setup CocoaPods:

$ gem install cocoapods

CocoaPods 1.1.0+ is required to build Vulcan

Podfile

platform :ios, '8.0'use_frameworks!target '<Your Target Name>' dopod 'Vulcan'end

Then, run the following command:

$ pod install

Carthage

Setup carthage:

$ brew update$ brew install carthage

Cartfile

github "jinSasaki/Vulcan"

Usage

Image downloading and show

import Vulcan// Single downloadingimageView.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 image

Add SwiftWebP.framework .

import Vulcanimport SwiftWebPextension 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 ImageDownloaderUIImageView.vl_sharedImageDownloader.decoder = WebPDecoder()// Request image with URLimageView.vl_setImage(url: URL(string: "/path/to/image")!)

Requirements

  • iOS 8.0+
  • Xcode 8.1+
  • Swift 3.0.1+
未登录用户
全部评论0
到底啦