第三方框架之SDWebImage

1. 下载SDWebImage,导入工程。github托管地址https://github.com/rs/SDWebImage

2. 在需要的地方导入头文件#import "UIImageView+WebCache.h"

3. 调用sd_setImageWithURL:方法缓存图片,注意,这就是新版本的新方法,旧方法是setImageWithURL:

[self.imgView sd_setImageWithURL:[NSURL URLWithString:urlStirng]];

4. 其他的一些方法

(1)

sd_setImageWithURL:  completed:
  //用block 可以在图片加载完成之后做些事情
    [self.image2 sd_setImageWithURL:imagePath2 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        NSLog(@"图片加载完成之后做些事情");
    }];

(2)

  sd_setImageWithURL:  placeholderImage:
  //给一张站位图片,先使用默认图片,当图片加载完成后再替换
    [self.image1 sd_setImageWithURL:imagePath1 placeholderImage:[UIImage imageNamed:@"default"]];
 

 //使用默认图片,而且用block 在完成后做一些事情   不多说
    [self.image1 sd_setImageWithURL:imagePath1 placeholderImage:[UIImage imageNamed:@"default"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        NSLog(@"图片加载完成后做的事情");
    }];

5. 异步图片缓存

使用SDWebImageManager类:可以进行一些异步加载的工作。

SDWebImageManager *manager = [SDWebImageManager sharedManager];

UIImage *cachedImage = [manager imageWithURL:url]; // 将需要缓存的图片加载进来

if (cachedImage) {

      // 如果Cache命中,则直接利用缓存的图片进行有关操作

} else {

      // 如果Cache没有命中,则去下载指定网络位置的图片,并且给出一个委托方法

     [manager downloadWithURL:url delegate:self];
}

当然你的类要实现SDWebImageManagerDelegate协议,并且要实现协议的webImageManager:didFinishWithImage:方法。

// 当下载完成后,调用回调方法,使下载的图片显示
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image {

}
时间: 2024-10-08 19:02:36

第三方框架之SDWebImage的相关文章

iOS边练边学--多线程练习的多图片下载 以及 使用第三方框架(SDWebImage)的多图片下载

一.自己实现多图片下载应该注意的问题 沙盒缓存的问题 程序缓存的问题 cell重复利用显示图片混乱的问题 -- 用户拖拽快,下载图片慢导致的 解决图片混乱引入NSOperation集合的问题 资源下载失败的问题(练习中没有出现过,但是一定要考虑) 1 #import "ChaosViewController.h" 2 #import "ChaosApp.h" 3 4 @interface ChaosViewController () 5 /** 模型集合 */ 6

第三方框架

项目中使用到以下第三方框架 AFNetworking SDWebImage SVProgressHUD SnapKit Pod 安装 git 备份 打开终端 $ cd 进入项目目录 输入以下终端命令建立或编辑 Podfile $ pod init 将 Podfile 拖入 Xcode 输入以下内容 use_frameworks! platform :ios, '8.0' pod 'AFNetworking' pod 'SDWebImage' pod 'SVProgressHUD' pod 'Sn

iOS:网络编程的第三方框架:AFNetworking、SDWebImage

网络编程第三方框架:AFNetworking.SDWebImage 介绍:这些框架是开源的,经过前人的封装.改进,成为使用次数很多的一个性能好的源代码框架,只需要将它导入项目中,就可以使用.因此,在做项目时,使用它能够大大地提高效率. ※ 一.AFNetworking:功能是用来下载网络数据(包括文件,图片等) 属性如下: ※NSURLConnection: AFURLConnectionOperation AFHTTPRequestOperation AFHTTPRequestOperatio

【iOS开发】关于图片加载的第三方框架SDWebImage的使用

SDWebImage是一个第三方框架,用于加载网络图片,还有其他一些好的功能 使用步骤 下载地址 https://github.com/rs/SDWebImage 下载以后解压,解压以后是下图 然后将文件中的SDWebImage文件夹拖到项目中,然后在项目中使用 使用框架 #import "SDWebImage/UIImageView+WebCache.h"//引入头文件 -(UITableViewCell *)tableView:(UITableView *)tableView ce

【iOS开发-96】网络请求总结,深浅拷贝copy和mutableCopy,SDWebImage图像下载第三方框架

(1)一般的网络请求数据的处理结构是这样的 NSURL *url=[NSURL URLWithString:nil]; NSURLRequest *request=[NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:5.0f]; [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHa

iOS技术面试07:第三方框架

1ios框架分为:cocoa Touch:UIKit.Foundation.附属框架 Media:OpenGL ES.EAGL.Quartz.Core Animation.Core Audio.                          Open Audio Library.Media Player Core Services:Address Book.Core Foundation Core OS:线程.文件.I/O.内存和网络 2iOS网络编程层次结构四意图: Cocoa层(NSUR

Pod安装 第三方框架

可能有些朋友在开发中,需要用到第三方框架的时候,都是直接拖进项目里面,然后引入需要的头文件,开始操作.其实也能把项目做出来.但是由于第三方框架一般依赖于系统的一些框架,所以你导入第三方框架的时候,编译之后,还得去导入系统的一些框架,造成一些比较繁琐的工作.所以使用pod来安装,第三方框架,就显得比较便捷. 比如项目中,我们需要用到以下第三方框架: AFNetworking SDWebImage SVProgressHUD 步骤 然后接下来我就大概说一下,这个步骤(前提是XCODE安装了POD):

iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用

Swift 2.0和Objective-C2.0混编之第三方框架的使用 swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引入了多种新功能,使得编程工作更加简便,灵活! 2015年6月9日苹果又一次给所有开发之者带来了一个惊喜,那就是今年年底swift讲开源,者队iOS开发着来说无疑是一个值得兴奋的消息,可是就在这短短的几个月里面swift吸引了越来

GitHub 里面有大量优秀的第三方框架

写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每个项目都想集成的几个框架. SDWebImageView 1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 Model 类来存放这些数据.这就要求我们