程序加載圖片會遇到很多情況,比如有網(wǎng)和沒網(wǎng),有網(wǎng)狀態(tài)下又會分WWAN和WIFI兩種情況等等,現(xiàn)在接觸到一段有關程序加載圖片的代碼,現(xiàn)在拿出來與大家分享:
// 從內(nèi)存\沙盒緩存中獲得原圖,imageFromDiskCacheForKey方法會分別從緩存和沙盒讀取圖片
UIImage *originalImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:topic.image1];
if (originalImage) { // 如果內(nèi)存\沙盒緩存有原圖,那么就直接顯示原圖(不管現(xiàn)在是什么網(wǎng)絡狀態(tài))
self.imageView.image = originalImage;
} else { // 內(nèi)存\沙盒緩存沒有原圖
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];
if (mgr.isReachableViaWiFi) { // 在使用Wifi, 下載原圖
[self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image1] placeholderImage:placeholder];
} else if (mgr.isReachableViaWWAN) { // 在使用手機自帶網(wǎng)絡
// 用戶的配置項假設利用NSUserDefaults存儲到了沙盒中
// [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"alwaysDownloadOriginalImage"];
// [[NSUserDefaults standardUserDefaults] synchronize];
BOOL alwaysDownloadOriginalImage = [[NSUserDefaults standardUserDefaults] boolForKey:@"alwaysDownloadOriginalImage"];
if (alwaysDownloadOriginalImage) { // 下載原圖
[self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image1] placeholderImage:placeholder];
} else { // 下載小圖
[self.imageView sd_setImageWithURL:[NSURL URLWithString:topic.image0] placeholderImage:placeholder];
}
} else { // 沒有網(wǎng)絡
UIImage *thumbnailImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:topic.image0];
if (thumbnailImage) { // 內(nèi)存\沙盒緩存中有小圖
self.imageView.image = thumbnailImage;
} else {// 此處必須要設置占位圖片或者清空圖片,否則會導致cell的循環(huán)復用
self.imageView.image = placeholder;
}
}
}
在不同網(wǎng)絡狀態(tài)下加載圖片
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內(nèi)容
- SDWebImage作為目前最受歡迎的圖片下載第三方框架,使用率很高。但是你真的會用嗎?本文接下來將通過例子分析如...
- SDWebImage作為目前最受歡迎的圖片下載第三方框架,使用率很高。但是你真的會用嗎?本文接下來將通過例子分析如...
- hosea_zhou http://www.lxweimin.com/p/dabc0c6d083e SDWebI...
- 原文作者:clevergilr 原文地址:http://www.lxweimin.com/p/bb816cba0b7...
- 如果需求里需要分清楚在wifi環(huán)境還是3G/4G網(wǎng)絡狀況下的圖片加載的話,可以采用這個分類方法,快速加載自己想用的...