测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2017 年 4 月 |
由 smartwalle 维护。
依赖 | |
SDWebImage | >= 0 |
KIActionSheet | >= 0 |
此库提供了一个支持缓存的异步图像下载器。为了方便,我们为 UI 元素如 UIImageView
、UIButton
、MKAnnotationView
添加了分类。
UIImageView
、UIButton
、MKAnnotationView
添加网络图像和缓存管理分类WebP
子规范)pod try SDWebImage
来尝试示例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"))
FLAnimatedImageView
而不是UIImageView
。UIImageView
中,它只显示第1帧作为静态图像。UITableView通过单元格的第一个图像集决定图像的大小。如果您的远程图像与占位图像的大小不同,您可能会遇到奇怪的畸变缩放问题。以下文章提供了一种绕过此问题的方法
http://www.wrichards.com/blog/2011/11/sdwebimage-fixed-width-cell-images/
SDWebImage默认进行非常积极的缓存。它忽略由HTTP服务器返回的所有类型的缓存控制头,并无限期地缓存返回的图像。这意味着您的图像URL是静态URL,指向永远不会改变的图像。如果所指向的图像恰好发生变化,一些URL的一部分应该相应地变化。
如果您无法控制您使用的图像服务器,您可能无法在内容更新时更改URL。例如,这是Facebook头像URL的情况。在这种情况下,您可以使用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 setShowActivityIndicatorView:YES];
[imageView setIndicatorStyle:UIActivityIndicatorViewStyleGray];
imageView.setShowActivityIndicatorView(true)
imageView.setIndicatorStyle(.Gray)
有三种方法在项目中使用SDWebImage
platform :ios, '7.0'
pod 'SDWebImage', '~>3.8'
如果您使用Swift,请确保添加 use_frameworks!
并设置目标为iOS 8+
platform :ios, '8.0'
use_frameworks!
目前有3个子模块可用:Core
、MapKit
和 WebP
(这意味着您可以选择安装SDWebImage的某些模块。默认情况下您将获得 Core
,所以如果需要 WebP
,您需要指定它)。
Podfile 示例
pod 'SDWebImage/WebP'
github "rs/SDWebImage"
在需要使用库的源文件中导入头文件
#import <SDWebImage/UIImageView+WebCache.h>
此时您的工作区应该能够无错误地构建。如果您遇到问题,请发布到问题区域,社区可以帮助您解决。
所有源代码均使用 MIT 许可证 许可。