一 概述
- SDWebImage网络图片处理框架介绍
- Cell图片下载中的image下载使用SDWebImage代替
二 SDWebImage网络图片处理框架介绍
2.1 SDWebImage项目地址
1
| https://github.com/SDWebImage/SDWebImage
|
2.2 什么是SDWebImage
- IOS中著名的网络图片处理框架
- 包含的功能:图片下载、图片缓存、下载进度监听、gif处理等等
- 用法极其简单,功能十分强大,大大提高了网络图片的处理效率
- 国内超过90%的iOS项目都有它的影子
2.3 如何使用
在项目目录下打开终端,执行如下指令生成Podfile文件
Podfile文件中添加SSWebImage
1 2 3 4 5 6 7
| # Uncomment the next line to define a global platform for your project # platform :ios, '9.0'
target '01-Cell-网络图片下载' do use_frameworks! pod 'SDWebImage' end
|
安装依赖库
在使用的位置导入SDWebImage
1
| #import <SDWebImage/SDWebImage.h>
|
三 Cell图片下载中的image下载使用SDWebImage代替
3.1 代码
ILAppsViewController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #import "ILAppsViewController.h" #import "App.h" #import <SDWebImage/SDWebImage.h>
@interface ILAppsViewController () //存放数据 @property(nonatomic,strong) NSMutableArray *apps;
@end
@implementation ILAppsViewController
#pragma mark-懒加载代码
-(NSMutableArray *)apps { if (!_apps) { NSMutableArray *appArray=[NSMutableArray array]; //加载plist NSString *file=[[NSBundle mainBundle]pathForResource:@"apps" ofType:@"plist"]; NSArray *dicctArray=[NSArray arrayWithContentsOfFile:file]; //2-字典转模型 for(NSDictionary *dict in dicctArray){ App *app=[App appWithDict:dict]; [appArray addObject:app]; } //3.赋值 self.apps=appArray; } return _apps; }
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; }
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.apps.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *ID=@"app"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; if (!cell) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID]; } //取出模型 App *app=self.apps[indexPath.row]; cell.textLabel.text=app.name; cell.detailTextLabel.text=app.download; [cell.imageView sd_setImageWithURL:[NSURL URLWithString:app.icon] placeholderImage:[UIImage imageNamed:@"placeholder"]];
return cell; }
@end
|
AppDelegate内存警告时
1 2 3 4 5 6 7 8 9
| //当app接收到内存警告 -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application { //1.取消正在下载到操作 [[SDWebImageManager sharedManager]cancelAll]; //2.清除内存 [[SDWebImageManager sharedManager].imageCache clearWithCacheType:SDImageCacheTypeMemory completion:nil]; }
|
3.2 效果图