SDWebImage github首页翻译

作者: iOS猿 | 来源:发表于2016-04-26 15:38 被阅读929次

    SDWebImage

    此库提供UIImageView类别来支持网络远程下载图像。

    以下为提供的功能:

    * UIImageView类别添加基于Cocoa Touch框架的Web图像缓存管理。

    * 异步图像下载

    * 拥有自动缓存过期处理的异步内存/磁盘图像缓存,

    * 支持动画GIF

    * 支持WebP格式

    * 解压背景图像

    * 保证相同的URL不会被下载多次

    * 保证假的网址将不被一次又一次地重试

    * 保证,主线程将不会被阻止

    * 性能好

    * 使用GCD和ARC

    * 支持Arm64

    UITableView使用UIImageView+WebCache

    只需要import UIImageView+WebCache.h之后

    调用sd_setImageWithURL:placeholderImage:

    使用Blocks

    有了blocks,你可以知道图像下载的过程和什么时候图像取得结束。

    Note: 如果是自行取消的话,success和failure的block都不会调用

    使用SDWebImageManager

    该SDWebImageManager是UIImageView+WebCache背后的类。它将图像缓存存储和异步下载联系在一起。您可以直接使用这个类来从网页下载图像收益。也可以缓存在另一个上下文而不是UIView。

    单独使用异步图像下载器

    单独使用异步图像缓存

    SDImageCache维持了内存缓存和可选的磁盘缓存。

    可以用queryDiskCacheForKey:done: 来查看磁盘缓存。

    如果返回为nil 意味着当前缓存没有这张图片。

    所以你需要负责生成图像并缓存图像。

    缓存的键是应用中独有的标识,基本上是图像的绝对路径。

    默认来说SDImageCache会在内存缓存中发现不到图像的情况下 查询磁盘缓存。你可以禁止这一操作发生通过调用另一可选方法imageFromMemoryCacheForKey

    为了将图像存储在缓存里,你可以使用storeImage:forKey:方法,如下:

    默认的,图像会异步的存储在内存缓存和磁盘缓存中,如果你只想要保存在内存中,使用可选择方案storeImage:forKey:toDisk: 传空的第三个参数。

    使用缓存键过滤器

    有时,你可能不希望使用图像的URL作为缓存键,因为URL的一部分是变动的(换句话说:访问控制的目的)。SDWebImageManager提供了一种方法来设置缓存键过滤器,取NSURL作为输入,输出一个缓存键NSString。

    下面的示例在application delegate里将URL删除所有的查询字符串之后用作缓存键过滤器:

    常见问题

    在UITableViewCell使用动态图像尺寸

    UITableView通过用于小区中的第一图像组确定图像的大小。如果你的远程图像没有大小的占位符图像相同,您可能会遇到奇怪的变形比例问题。下面这篇文章给出了一个方法来解决此问题(翻译略)

    控制图像刷新

    SDWebImage默认完成了非常积极的缓存。它忽略了所有类型的缓存控制头部的HTTP服务器返回,并且没有时间限制缓存返回的图像。这意味着你的图片网址指向,从来没有改变图像静态URL。如果尖图像发生变化,部分URL应该相应地改变。

    如果你不控制你正在使用的图像服务器,您可能无法更改URL时,它的内容更新。这是用于例如实化身的URL的情况。在这种情况下,你可以使用SDWebImageRefreshCached标志。这将略微降低性能,但会尊重HTTP缓存控制头:

    添加一个进度指示器

    GitHub - JJSaccolo/UIActivityIndicator-for-SDWebImage: The easiest way to add a UIActivityView to your SDWebImage view

    安装

    有三种方法在项目中使用SDWebImage:

    * 使用的CocoaPods

    * 复制所有文件到您的项目

    * 导入项目作为静态库

    用CocoaPods安装

    CocoaPods是Objective-C的依赖管理者,能自动化并简化在项目中使用第三方库的过程中依赖管理。

    Subspecs

    有3个subspaces可以使用:Core, MapKit, WebP (这意味你可以只安装一部分的SDWebImage模块。默认只有Core,如果你想用WebP,你需要特别指定)

    pod ’SDWebImage/WebP’

    用Carthage安装

    Carthage是个轻量级版本依赖管理者

    有许多地方太过于懒得翻译了,不便之处请多提意见 谢谢!

    相关文章

      网友评论

        本文标题:SDWebImage github首页翻译

        本文链接:https://www.haomeiwen.com/subject/rnaulttx.html