SDWebImage支持缓存异步图片下载,可以添加分类到UI界面如UIImageView, UIButton, MKAnnotationView。
特征
- 为
UIImageView
,UIButton
,MKAnnotationView
分类添加网络图片和缓存管理 - 采用异步图片下载方式
- 自动管理缓存,采用异步方式对内存+磁盘进行图片缓存
- 后台图片解压
- 确保同一URL不会被重复下载数次
- 确保不会阻塞主线程
- 支持Objective-C 和 Swift
安装
CocoaPods安装
CocoaPods是Objective-C一个依赖管理库,能在你的项目中自动和简化用第三方库。看 Get Started 部分获取更多细节。
Podfile
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
Swift 和静态框架
Swift 项目 首先要使用 use_frameworks!
令所有 Pods 成为动态框架让CocoaPods生效。
但是, 在CocoaPods 1.5.0+
(with Xcode 9+
), 支持对Objective-C && Swift 代码成为静态框架。可以用 modular headers 令SDWebImage 作为静态框架, 不再需要 use_frameworks!
:
platform :ios, '8.0'
# Uncomment the next line when you want all Pods as static framework
# use_modular_headers!
pod 'SDWebImage', :modular_headers => true
否则,你依然需要使用use_frameworks!
去将SDWebImage作为动态框架使用
platform :ios, '8.0'
use_frameworks!
pod 'SDWebImage'
用法
- Objective-C
#import <SDWebImage/SDWebImage.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"))