一、簡介
SDWebImage作為一個(gè)優(yōu)秀的圖片加載框架,提供的使用方法和接口對(duì)開發(fā)者來說非常友好臂聋。其內(nèi)部實(shí)現(xiàn)多是采用Block的方式來實(shí)現(xiàn)回調(diào)事镣。主要功能和支持項(xiàng)如下
1、提供了一個(gè)UIImageView
的Category
用來加載網(wǎng)絡(luò)圖片并且對(duì)圖片進(jìn)行緩存管理
2古劲、采用異步方式下載網(wǎng)絡(luò)圖片
3斥赋、采用異步方式,使用memory+disk來緩存圖片产艾,自動(dòng)緩存管理
4疤剑、支持GIF動(dòng)畫
5、支持WebP個(gè)格式(新的圖片格式闷堡,在于同等質(zhì)量下體積小隘膘,提示網(wǎng)絡(luò)傳輸效率)
6、同一個(gè)URL的網(wǎng)絡(luò)圖片不會(huì)被重復(fù)下載
7杠览、失效的URL不會(huì)被無限重試弯菊,有個(gè)失效URL管理隊(duì)列
8、耗時(shí)操作都在子線程踱阿,確保不會(huì)阻塞主線程
9管钳、使用GCD和ARC
10、支持ARM64
二软舌、流程圖
三才漆、使用
1.使用IImageView+WebCache category來加載UITableView中cell的圖片
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
2.使用Blocks,采用這個(gè)方案可以在網(wǎng)絡(luò)圖片加載過程中得知圖片的下載進(jìn)度和圖片加載成功與否
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
//... completion code here ...
}];
3.使用SDWebImageManager,SDWebImageManager為UIImageView+WebCache category的實(shí)現(xiàn)提供接口。
SDWebImageManager *manager = [SDWebImageManager sharedManager] ;
[manager downloadImageWithURL:imageURL options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
// progression tracking code
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {
if (image) {
// do something with image
}
}];
4.加載圖片還有使用SDWebImageDownloader和SDImageCache方式葫隙,但那個(gè)并不是我們經(jīng)常用到的栽烂。基本上面所講的3個(gè)方法都能滿足需求。
內(nèi)容摘自http://blog.csdn.net/larryluoshuai/article/details/68061592