SDWebImage的使用
2017-09-07 本文已影响8人
小苗晓雪
SDWebImage的三个常用方法
//赋值网络图片:
NSString * imageString = [NSString stringWithFormat:@"%@%@",baseUrl,shop.shop_image];
[cell.iconView sd_setImageWithURL:[NSURL URLWithString:imageString] placeholderImage:[UIImage imageNamed:@"defaultImage"]];
[cell.iconView sd_setImageWithURL:[NSURL URLWithString:imageString] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"下载完成");
}];
//SDWebImage提供了获取下载进度的方法:
[cell.iconView sd_setImageWithURL:[NSURL URLWithString:imageString] placeholderImage:[UIImage imageNamed:@"defaultImage"] options:SDWebImageRetryFailed | SDWebImageLowPriority progress:^(NSInteger receivedSize, NSInteger expectedSize) {
//获取图片下载进度:
NSLog(@"%ld" , receivedSize / expectedSize);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"下载完成");
}];
#import "ViewController.h"
#import "Masonry.h"
#import "ShopCell.h"
#import "UIImageView+WebCache.h" //导入SDWebImage
static NSString * baseUrl = @"http://192.168.XX.XX/images/"; //网络接口地址
@interface ViewController ()
@property (nonatomic, strong) NSArray * datalist;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.tableView registerClass:[ShopCell class] forCellReuseIdentifier:NSStringFromClass([ShopCell class])];
self.tableView.rowHeight = 100;
}
- (NSArray *)datalist
{
if (!_datalist)
{
_datalist = [ShopEntity loadShopData];
}
return _datalist;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.datalist.count;
}
#pragma mark - <UITableViewDataSource>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ShopCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([ShopCell class])];
ShopEntity * shop = self.datalist[indexPath.row];
//赋值主标题:
cell.nameLabel.text = shop.shop_name;
//赋值副标题:
cell.descLabel.text = shop.shop_desc;
//赋值网络图片:
NSString * imageString = [NSString stringWithFormat:@"%@%@",baseUrl,shop.shop_image];
[cell.iconView sd_setImageWithURL:[NSURL URLWithString:imageString] placeholderImage:[UIImage imageNamed:@"defaultImage"]];
[cell.iconView sd_setImageWithURL:[NSURL URLWithString:imageString] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"下载完成");
}];
//SDWebImage提供了获取下载进度的方法:
[cell.iconView sd_setImageWithURL:[NSURL URLWithString:imageString] placeholderImage:[UIImage imageNamed:@"defaultImage"] options:SDWebImageRetryFailed | SDWebImageLowPriority progress:^(NSInteger receivedSize, NSInteger expectedSize) {
//获取图片下载进度:
NSLog(@"%ld" , receivedSize / expectedSize);
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSLog(@"下载完成");
}];
return cell;
}
#pragma mark - <UITableViewDelegate>
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
//options 图片缓存策略
/*
options所有选项:
//失败后重试
SDWebImageRetryFailed = 1 << 0,
//UI交互期间开始下载,导致延迟下载比如UIScrollView减速。
SDWebImageLowPriority = 1 << 1,
//只进行内存缓存
SDWebImageCacheMemoryOnly = 1 << 2,
//这个标志可以渐进式下载,显示的图像是逐步在下载
SDWebImageProgressiveDownload = 1 << 3,
//刷新缓存
SDWebImageRefreshCached = 1 << 4,
//后台下载
SDWebImageContinueInBackground = 1 << 5,
//优先下载
SDWebImageHighPriority = 1 << 8,
//延迟占位符
SDWebImageDelayPlaceholder = 1 << 9,
//改变动画形象
SDWebImageTransformAnimatedImage = 1 << 10,
*/
@end