加載網絡圖片可以說是網絡應用中必備的。如果單純的去下載圖片,而不去做多線程、緩存等技術去優化,加載圖片時的效果與用戶體驗就會很差。
處理網絡圖片緩存步驟:
1、根據圖片URL查找內存是否有這張圖片,有則返回圖片,沒有則進入下一步。
2、查找本地磁盤存儲是否有這張圖片,有則返回圖片,沒有進行下一步。
3、從網絡上下載該圖片,下載完後保存到內存和本地磁盤存儲上,並返回該圖片。
使用第三方框架SDWebImage
特點:
1、依賴庫很少,功能全面
2、自動實現磁盤緩存
3、緩存圖片名字是以MD5進行加密的後綴名進行命名
4、只需要一個方法就可以實現多線程&帶緩衝等效果
使用SDWebImage 方法實現緩存圖片功能
#pragma mark - 數據源方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.appList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *ID = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
//用模型來填充每個cell
XNApp *app = self.appList[indexPath.row];
cell.textLabel.text = app.name; //設置文字
//使用SDWebImage來完成上面的功能. 針對ImageView.
//一句話, 自動實現了異步下載. 圖片本地緩存. 網絡下載. 自動設置佔位符.
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:app.icon] placeholderImage:[UIImage imageNamed:@"user_default"]];
return cell;
}
SDWebImage中的一些參數 修改: