SDWebImage常用方法

来源:互联网 发布:健身数据统计 编辑:程序博客网 时间:2024/06/06 02:58
1.图片缓存
//常用方法一- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;//例如:[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"图片地址"]placeholderImage:[UIImage imageNamed:@"placeholder"]];//常用方法二//参数三:SDWebImageOptions//SDWebImageRetryFailed :下载失败后,会重新继续下载//SDWebImageLowPriority :正在进行UI交互操作时,停止内部的下载操作- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options;//例如SDWebImageOptions options = SDWebImageRetryFailed | SDWebImageLowPriority;[cell.imageView sd_setImageWithURL:url placeholderImage:placeholder options:options];//常用方法三- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder completed:(SDWebImageCompletionBlock)completedBlock;//例如:[cell.imageView sd_setImageWithURL:url placeholderImage:placeholder completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {    NSLog(@"----图片加载完毕---%@", image);}];//常用方法四- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock ;//例如:SDWebImageOptions options = SDWebImageRetryFailed | SDWebImageLowPriority;[cell.imageView sd_setImageWithURL:url placeholderImage:placeholder options:options progress:^(NSInteger receivedSize, NSInteger expectedSize) { // 这个block可能会被调用多次        NSLog(@"下载进度:%f", (double)receivedSize / expectedSize);    } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {        NSLog(@"----图片加载完毕---%@", image);    }];

2.图片下载

/*

*没有缓存机制

*/

[[SDWebImageDownloader sharedDownloader]downloadWithURL:[NSURL URLWithString:@"图片地址"]options:0

progress:^(NSInteger receivedSize, NSInteger expectedSize){

//此处是下载图片的进度

}

completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished){

//图片下载完成后在这里执行

}];

/*

*有缓存机制(4.0版本此方法被移除)

*/

[[SDWebImageManager sharedManager] downloadWithURL:[NSURL URLWithString:oneImageURL]options:0

progress:^(NSInteger receivedSize, NSInteger expectedSize){

//}

completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished){

//}]; 

3.其他方法

//清除缓存文件

[[SDImageCache sharedImageCache] clearDisk];

//判断本地缓存中是否存在网络中的图片

NSString *imageNetURL = @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";[[SDImageCache sharedImageCache] diskImageExistsWithKey:imageNetURL];

//获取缓存图片的张数

[[SDImageCache sharedImageCache] getDiskCount];

//获取所有缓存图片的大小

[[SDImageCache sharedImageCache] getSize];

//通过URL获取缓存中的图片

NSString *imageNetURL = @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";

[[SDImageCache sharedImageCache] imageFromDiskCacheForKey:imageNetURL];

//通过URL删除缓冲中的图片

NSString *imageNetURL = @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";

[[SDImageCache sharedImageCache] removeImageForKey:imageNetURL]; 

4、内存处理,当app收到内存警告时

//该方法写在AppDelegate.m文件中- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{    SDWebImageManager *mgr = [SDWebImageManager sharedManager];    // 1.取消正在下载的操作    [mgr cancelAll];    // 2.清除内存缓存    [mgr.imageCache clearMemory];}
1 0
原创粉丝点击