Guiso 2.7

Guiso 2.7

Juan J LF维护。



Guiso 2.7

  • 作者:
  • only-icesoul

Guiso

Version License Platform

Guiso是一个为iOS设计的图像加载框架,它封装了多媒体解码、内存和磁盘缓存。默认情况下,Guiso使用URLSession。支持获取、解码和显示视频静态画面、图片和动画GIF。Guiso主要关注使各种类型的图像列表滚动尽可能平滑、快速,但Guiso对于几乎任何需要从远程获取、调整大小和显示图像的用例也都很有效。

需求

 ios platform 11

安装

Guiso可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中。

pod 'Guiso'

示例

要运行示例项目,首先克隆仓库,然后从示例目录运行pod install

功能

  • Web URL
  • 本地URL
  • 本地资源标识符
  • 数据
  • 自定义模型和加载器
  • 自定义变换
  • 自定义GifDecoder
  • 预加载
  • 缩略图、占位符、错误、回退
  • 选项

用法

Guiso将结果发送给实现协议ViewTarget的视图。

使用GuisoView。

import Guiso

let img = GuisoView()  // ViewTarget
Guiso.load(url).into(img)

//by default caching is disabled for Data object.
Guiso.load(data).into(img)
//There's no efficient way to compute a cache name for a byte array. 
// You can supply your own name using signature(). short names "IMG_WA\(self.count)"
Guiso.load(data).signature("IMG_WA001").into(img)

ViewTarget

目标负责显示加载的资源。GuisoView使用ImageView显示GIF和UIImage。用户也可以实现他们自己的目标。

class MyViewTarget : ViewTarget {

}

变换

Guiso中的变换接收一个资源,对其进行修改,并返回修改后的资源。通常变换用于裁剪或调整UIImage的大小,但它们也可以用于转换动画GIF。

fitCenter(aspectFit): 均匀地缩放图像,保持图像的宽高比,使图像的一个维度等于给定的维度,另一个维度小于给定的维度。

centerCrop(aspectFill)
调整图像大小,使图像的宽度与给定的宽度相等,且高度大于给定的宽度,或反之;然后裁剪较大的维度以匹配给定的维度。不保持图像的宽高比。

应用变换

let width = 200
let height = 200
let view = GuisoView()

Guiso.load(url).fitCenter().override(width,height).into(view)

Guiso.load(Data).centerCrop().override(width,height).into(view)

动画GIF

Guiso.load("url").asGif().into(myViewTarget)
Guiso.load(Data).asGif().into(myViewTarget)

优先级

完成加载任务的优先级。如果有多个加载任务同时排队,优先级更高的任务将最先开始运行。优先级是尽力而为的原则,不能保证加载任务的开始和结束顺序。

  • 背景
  • 正常

标题

用于加载图像的头部

let headers = GuisoHeader().addHeader(key:"Authorization",value:"token")

Guiso.load(urlWeb).headers(headers).into(target)