JJGuiso 1.9.4

JJGuiso 1.9.4

Juan J LF 维护。



JJGuiso 1.9.4

  • only-icesoul

Guiso

Version License Platform

Guiso 是一个支持媒体解码、内存和磁盘缓存的 iOS 图像加载框架。默认情况下,Guiso 使用 URLSession。支持获取、解码和显示视频静态画面、图片和动画 GIF。Guiso 的主要关注点是使滚动任何类型的图片列表尽可能地平滑和快速,但是 Guiso 也几乎适用于您需要获取、调整大小并发布远程图片的任何情况。

需求

 ios developer target 10.0

安装

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

pod 'JJGuiso'

示例

要运行示例项目,请先克隆存储库,然后从 Example 目录运行 pod install

特性

  • 网络 URL
  • 本地 URL
  • 本地标识符
  • 数据
  • 自定义模型和加载器
  • 自定义变换
  • 自定义动画图像解码器
  • 预加载
  • 缩略图、占位符、错误、回退
  • 选项

使用说明

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").asAnimatedImage().into(myViewTarget) // gif

动画WebP

// use https://cocoapods.org.cn/pods/JJGuisoWebP
//create a class and implement AnimatedImageDecoderProtocol
let decoder:  AnimatedImageDecoderProtocol = MyClass()
Guiso.load("url").asAnimatedImage().animatedImageDecoder(decoder).into(myViewTarget) // gif

优先级

完成加载的优先级。如果同时有多个加载任务排队,优先级较高的任务将首先启动。优先级被视为最佳尝试,无法保证加载任务开始或结束的顺序。

  • 背景
  • 普通

标题

用于加载图像的标题

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

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