SDWebImage中文说明

栏目: IOS · 发布时间: 6年前

内容简介:前端时间想详细的了解下AFNetworking库,所以想着看看官方的API吧。想想既然看看就做下笔记吧,既然做了笔记为何不试着翻译一下呢。然后就有了之前的文章《AFNetworking说明书》. 之后突然有时间觉得空闲了,就想着再看一篇API文档吧。 选中了《SDWebImage说明书》这篇文章。选中这个原因是使用的多,并且评论说代码风格好。与AFNetworking说明书不分上下。推荐下自己的文章哈。有兴趣的可以看看,当然本人英文菜鸟,翻译不对的地方,请多多赐教。这个库提供一个具有缓存功能的异步图片下载
SDWebImage中文说明

前端时间想详细的了解下AFNetworking库,所以想着看看官方的API吧。想想既然看看就做下笔记吧,既然做了笔记为何不试着翻译一下呢。然后就有了之前的文章《AFNetworking说明书》. 之后突然有时间觉得空闲了,就想着再看一篇API文档吧。 选中了《SDWebImage说明书》这篇文章。选中这个原因是使用的多,并且评论说代码风格好。与AFNetworking说明书不分上下。

推荐下自己的文章哈。有兴趣的可以看看,当然本人英文菜鸟,翻译不对的地方,请多多赐教。

涉及到的类,分类和协议需要点击跳转到新页面查看。

这个库提供一个具有缓存功能的异步图片下载器。为了方便,我们添加了UI元素的分类,如UIImageView, UIButton, MKAnnotationView。

特性

  • 创建分类为UIImageView,UIButton,MKAnnotationView增加网络图片和缓存管理。
  • 一个异步的图片下载器。
  • 一个具有自动缓存过期处理的异步内存+磁盘的图片缓存。
  • 一个后台的图片解压器。
  • 确保相同的URL不会下载多次。
  • 确保错误的URL不会一次又一次的重试。
  • 确保主线程不会被阻塞。
  • 性能优化。
  • 使用GCD 和 ARC。

支持图片格式化

  • 由UIImage支持的图片格式,如JPEG,PNG等,包括GIF。
  • WebP格式,包含动态WebP(使用WebP子空间)。

要求

  • iOS 7.0或以上版本
  • tvOS 9.0或以上版本
  • watchOS 2.0或以上版本
  • OS X10.8或以上版本
  • Xcode7.3或以上版本

向后兼容

  • iOS5和6版本,使用3.想到3.7.6之间的任意版本。
  • 小于iOS5.0的版本,请使用最后的2.0版本。

开始

  • 阅读“Readme文档”。
  • 阅读“如果使用章节”。
  • 阅读“@CocoaDocs文档”。
  • 阅读“为何SDWebImage比X好”。
  • 从Github下载工程或使用CocoaPods更简单尝试SDWebImage样例。
  • 查看“安装步骤”。
  • 阅读“SDWebImage4.0迁移导向”了解3.x到4.x的变化。

谁在使用

  • 找出“谁在使用SDWebImage”并添加你的app到列表中。

交流

  • 如果你需要帮助,请使用Stack Overflow。(‘sdwebiamge’标签)
  • 如果你想询问一般的问题,请使用Stack Overflow。
  • 如果有发现一个bug,请新开一个问题。
  • 如果你有一个特性请求,请新开一个问题。
  • 如果有想投稿,请提交一个pull请求。

怎么使用

Objective-c

#import <SDWebImage/UIImageView+WebCache.h>
...
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
             placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
复制代码

Swift

import SDWebImage

imageView.sd_setImage(with: URL(string: "http://www.domain.com/path/to/image.jpg"), placeholderImage: UIImage(named: "placeholder.png"))
复制代码
  • 想了解怎么使用这个库和清晰示例的详细信息,详见“怎么使用的详情”。

动画图片(GIF)支持

  • 从4.0版本开始,我们依赖FLAnimatedImage来处理我们的动画图像。
  • 如果你使用cocoapods,添加‘SDWebImage/GIF’到你的podfile文件。
  • 使用它,只需确保你使用FLAnimatedImageView代替UIImageView。
  • **注意:**有一个向后兼容特性,所以如果你任然尝试加载GIF到UIImageView中,它只会显示第一帧的静态图片。
  • **重要:**FLAnimatedImage只工作在iOS平台。在OX X系统,使用NSImageView并设置animates为YES来显示整个动画图片,设置为NO则只显示第一帧。其他的所有平台(tvOS,watchOS),我们会退回到上面描述的向后兼容特性。

常见问题

UITableViewCell中使用动态图片大小

UITableView通过检测第一张图片的大小来设置一个单元格。如果你的远程图片与你的默认图片大小不一致,有可能碰到奇怪的图片变形问题。以下的文章提供了一个解决这个问题的思路:[ www.wrichards.com/blog/2011/1… ]( www.wrichards.com/blog/2011/1… ).

处理图片刷新

SDWebImage默认具有非常强烈的缓存机制。它会忽略HTTP服务器返回中控制头的所有缓存类型,将无限制的缓存返回的图片。它意味着你的图片URLS是静态的URLS并指向绝不会修改的图片。如果指向的图片发生了改变,URL部分也应该相应的修改。 如果你没有控制你正在使用的图片服务器,那么当图片内容发生修改时你不能修改图片的URL。这种情况以Facebook的头像URLS为例。这种情况下,你可以使用SDWebImageRefreshCached标签。这将稍微降低性能但是将遵守HTTP缓存控制头:

[imageView sd_setImageWithURL:[NSURL URLWithString:@"https://graph.facebook.com/olivier.poitrey/picture"]
             placeholderImage:[UIImage imageNamed:@"avatar-placeholder.png"]
                      options:SDWebImageRefreshCached];
复制代码

添加一个进度指示器

在你调用sd_setImageWithURL之前添加以下代码

[imageView sd_setShowActivityIndicatorView:YES];
[imageView sd_setIndicatorStyle:UIActivityIndicatorViewStyleGray];
复制代码
imageView.sd_setShowActivityIndicatorView(true)
imageView.sd_setIndicatorStyle(.Gray)
复制代码

安装

一共有3个方法在你的工程中使用SDWebImage:

  • 使用CocoaPods
  • 使用Carthage
  • 通过克隆工程添加到你的仓库

PODFILE

platfrom :ios, '7.0'
pod 'SDWebImage', '~> 4.0'
复制代码

如果你在使用Swift,确保添加了use_frameworks!和设置目标版本为iOS 8+:

platform: ios, '8.0'
use_frameworks!
复制代码

SUBSPECS现在有4个有效的子模块:Core,MapKit,GIF和WebP(这意味着你可以只安装SDWebImage的指定模块。默认,你只获取Core模块,所以如果你需要WebP,你需要指定它)。 Podfile样例:

pod 'SDWebImage/WebP'
复制代码

CARTFILE

github "rs/SDWebImage"
复制代码

通过克隆仓库安装

  • 详见“手动安装”。

在你的源文件中引入头文件

在你需要使用这个库的源文件中,引入头文件:

##import <SDWebImage/UIImageView+WebCache.h>
复制代码

编译工程

这点呢,你的工作空间编译不能有错误。如果你有问题,发送你的问题,社区可以帮助你解决它。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法设计与分析基础

算法设计与分析基础

乐威汀 (Anany Levitin) / 清华大学出版社 / 2003-8 / 39.00元

《算法设计与分析基础(影印版)》由清华大学出版社出版。一起来看看 《算法设计与分析基础》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具