美文网首页
iOS SDWebImage 使用

iOS SDWebImage 使用

作者: Zhen斌iOS | 来源:发表于2020-06-02 11:18 被阅读0次

https://github.com/rs/SDWebImage

一、介绍

UIImageView的类目,支持异步图片下载,支持缓存机制。

SDWebImage库给UIImageView提供类目,支持远程下载图片(从网络上),功能如下:

一个UIImageView的类目,给 Cocoa Touch 框架添加了异步下载远程图片以及管理图片缓存的功能

  • 一个图片的异步下载器
  • 一个内存 + 磁盘的缓存机制,并自动管理
  • gif动画支持
  • WebP格式支持
  • 后台解压图片
  • 确保同样地 URL 不会重复的下载多次
  • 确保无效的 URL 不会重复的链接
  • 确保主线程永远不会阻塞
  • 效果拔群!
  • 使用GCD以及要求ARC
  • 支持64位系统

二、独立的下载图片的功能(没有缓存机制)

    NSString *oneImageURL =
    @"http://wallpapers.wallbase.cc/rozne/wallpaper-573934.jpg";
    
    [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:[NSURL URLWithString:oneImageURL]
                                                          options:0
     
     progress:^(NSInteger receivedSize, NSInteger expectedSize)
     {
         //此处为下载进度
     }
     completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished)
     {
         //下载完成后进入这里执行
     }];

三、独立的下载图片的功能(有缓存机制)

    NSString *oneImageURL =
    @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";
    
    [[SDWebImageManager sharedManager] downloadWithURL:[NSURL URLWithString:oneImageURL]
                                               options:0
     
    progress:^(NSInteger receivedSize, NSInteger expectedSize)
    {
        //此处为下载进度
    }
    completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished)
    {
        //下载完成后进入这里执行
    }];
清除缓存文件
[[SDImageCache sharedImageCache] clearDisk];
判断本地缓存中是否存在网络中的图片
NSString *imageNetURL = @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";
[[SDImageCache sharedImageCache] diskImageExistsWithKey:imageNetURL];
获取缓存图片张数
[[SDImageCache sharedImageCache] getDiskCount];
获取所有缓存图片的总大小
[[SDImageCache sharedImageCache] getSize];
直接从缓存中提取图片
NSString *imageNetURL = @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";
[[SDImageCache sharedImageCache] imageFromDiskCacheForKey:imageNetURL];
直接删除缓存中得图片
NSString *imageNetURL = @"http://pic.cnitblog.com/avatar/607542/20140226182241.png";
[[SDImageCache sharedImageCache] removeImageForKey:imageNetURL];
在UITableView中使用
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *MyIdentifier = @"Y.X.";
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
        
        if (cell == nil)
        {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                           reuseIdentifier:MyIdentifier] autorelease];
        }
        
        // Here we use the new provided setImageWithURL: method to load the web image
        [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                       placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
        
        cell.textLabel.text = @"Y.X.";
        return cell;
    }

相关文章

网友评论

      本文标题:iOS SDWebImage 使用

      本文链接:https://www.haomeiwen.com/subject/mftuzhtx.html