IOS網絡圖片緩存之SDWebImage

加載網絡圖片可以說是網絡應用中必備的。如果單純的去下載圖片,而不去做多線程、緩存等技術去優化,加載圖片時的效果與用戶體驗就會很差。

處理網絡圖片緩存步驟:

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中的一些參數 修改:

*SDWebImageRetryFailed = 1<< 0,   默認選項,失敗後重試
*SDWebImageLowPriority = 1<< 1,    使用低優先級
*SDWebImageCacheMemoryOnly = 1<< 2,   僅僅使用內存緩存
*SDWebImageProgressiveDownload = 1<< 3,   顯示現在進度
*SDWebImageRefreshCached = 1<< 4,    刷新緩存
*SDWebImageContinueInBackground =1 << 5,   後臺繼續下載圖像
*SDWebImageHandleCookies = 1<< 6,    處理Cookie
*SDWebImageAllowInvalidSSLCertificates= 1 << 7,    允許無效的SSL驗證
*SDWebImageHighPriority = 1<< 8,     高優先級
*SDWebImageDelayPlaceholder = 1<< 9     延遲顯示佔位圖片


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章