SDWebImage是一个可以自动管理图片加载的类库 --- 图片加载非常耗费流量 --- 在移动平台上要非常小心 --- 本地缓存
》SDWenImage功能强大 --- 有一个UIImageView的category,用法简单
- (void)setImageWithURL:(NSURL *)url
》SDWebImageManager,使用它可以进行一些异步加载的工作,参考文档:
https://github.com/rs/SDWebImage#readme
SDWebImage --- 简化网络图片出路
1》导入UIImageView+WebCache,调用TableView的数据源代理方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;用sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder 异步加载图片
#import "UIImageView+WebCache.h" ... - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cell_id = @"myTableViewCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cell_id forIndexPath:indexPath]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease]; } // 给imageView异步加载图片 [cell.imageView sd_setImageWithURL:[NSURL URLWithString:self.pictureStringArray[indexPath.row]] placeholderImage:[UIImage imageNamed:@"1.jpg"]]; cell.textLabel.text = @"111; return cell; }
2》SDWebImageManager
The SDWebImageManager is the class behind the UIImageView+WebCache category. It ties theasynchronous downloader with the image cache store. You can use this classe directly to benefitsfrom web image downloading with caching in another context than a UIView
下面是如何使用SDWebImageManager一个简单的例子:
SDWebImageManager *manager = [SDWebImageManager sharedManager]; UIImage *cachedImage = [manager imageWithURL:url]; if (cachedImage) { // Use the cached image immediatly } else { // Start an async download [manager downloadWithURL:url delegate:self]; }
》遵守SDWebImageManagerDelegate协议,实现webImageManager:didFinishWithImage:
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image { // Do something with the downloaded image }