ios开发进阶程序员iOS Developer

SDWebImage说明书

2017-08-18  本文已影响51人  _阿南_
SDWebImage

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

特性

支持图片格式化

要求

向后兼容

开始

睡在使用

交流

怎么使用

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)支持

常见问题

UITableViewCell中使用动态图片大小

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

处理图片刷新

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:

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>

编译工程

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

作者

合作者

许可

所有源代码的许可都在MIT许可中。

架构

类图表 时序图表

类说明

协议说明

分类说明

常量说明

// END 2017年9月22日 又完成一篇,英文能力提升还是有的。继续加油。

上一篇 下一篇

猜你喜欢

热点阅读