您的位置:首页 > 其它

SDWebImage基础应用

2015-06-23 14:17 330 查看
iOS中用到的异步加载图片最为广泛的三方库恐怕莫属SDWebImage了。下面记录一些自己使用到该库时候所用到的的基础用法,以后用到了方便来拿

1.最基础的异步加载图片方法,使用该方法,会把所加载的图片缓存到项目沙盒路径下

需导入头文件:#import
"UIImageView+WebCache.h"

[cell.iconImageView
sd_setImageWithURL:[NSURL
URLWithString:urlString]
placeholderImage:[UIImage
imageNamed:@"ic_default_photo.png"]];

2.利用缓存措施,提高加载速度
需导入头文件:

#import "SDWebImageManager.h"
#import
"SDImageCache.h"

NSString *urlString = @"urlString";
UIImage *cacheImage = [[SDImageCache
sharedImageCache]
imageFromDiskCacheForKey:urlString];

if
(cacheImage) {
//如果从缓存中取出了缓存图片,则直接使用
cell.iconImageView.image
= cacheImage;
}
else {
//如果缓存中不存在缓存图片,则下载
[[SDWebImageManager
sharedManager]
downloadImageWithURL:[NSURL
URLWithString:urlString]
options:SDWebImageProgressiveDownload
progress:^(NSInteger
receivedSize, NSInteger expectedSize) {
//此处可以显示加载进度动画

}
completed:^(UIImage *image,
NSError *error,
SDImageCacheType cacheType, BOOL finished,
NSURL *imageURL) {
//下载完成后使用,并把图片写入磁盘缓存,若仅把所加载的图片放到内存缓存,则 toDisk 传入参数:NO,
当然如果不需要显示进度等动画,该语句块中可用第一种方法代替。
if
(image) {
//下载成功
cell.iconImageView.image = image;
[[SDImageCache
sharedImageCache]
storeImage:image
forKey:urlString
toDisk:YES];
}
else {

//下载失败
cell.iconImageView.image
= [UIImage
imageNamed:@"ic_default_photo.png"];
}
}

3.独立的异步图像下载
需导入头文件:#import
"SDWebImageDownloader.h"

[[SDWebImageDownloader
sharedDownloader]
downloadImageWithURL:[NSURL
URLWithString:@""]
options:SDWebImageDownloaderProgressiveDownload
progress:^(NSInteger
receivedSize, NSInteger expectedSize) {

//此处可以显示加载进度动画

} completed:^(UIImage
*image, NSData *data,
NSError *error,
BOOL finished) {

//your code here
}];

4.当我们的应用受到内存警告时候,我们便需要进行一些适当的处理,在AppDelegate中的此方法中做清除图片缓存措施

需导入头文件:

#import "SDWebImageManager.h"

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{

[[[SDWebImageManager
sharedManager] imageCache]
clearDisk];

[[[SDWebImageManager
sharedManager] imageCache]
clearMemory];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: