利用SDWebImage下載圖片

利用SDWebImage下載圖片的原因

近期項目中有一個關(guān)于開屏廣告加的需求變更。需要客戶端將一段時間內(nèi)的開屏廣告圖都預(yù)先下載到本地,確保用戶在網(wǎng)絡(luò)不佳甚至斷網(wǎng)的情況下都能看到我們的開屏廣告。一般情況下我們都是通過SDWebImage來動態(tài)的加載網(wǎng)絡(luò)圖片,能不能通過SDWebImage來幫我們預(yù)先下載好圖片呢?下面就來分享一下我是怎么通過SDWebImage預(yù)加載圖片的 :)

封裝好的下載類

為了能方便的實現(xiàn)圖片的下載,使用,移除等功能的調(diào)用,我封裝了一個類ZYImageDownloader,并且已經(jīng)在github上開源,有興趣的伙伴可以直接前往下載

原理分析

其實SDWebImage內(nèi)部已經(jīng)幫我們實現(xiàn)了圖片下載的類,SDWebImageDownloader一個專門用來下載圖片的類,SDWebImagePrefetcher一個專門用來批量下載圖片的類

這里我們主要就是使用了SDWebImagePrefetcher來下載圖片,我們只需要將要下載的圖片地址傳入,SDWebImagePrefetcher就會幫我們將圖片逐個下載下來,并且緩存在本地,緩存的方式和我們通常使用的動態(tài)加載圖片一樣以url為key存儲

[[SDWebImagePrefetcher sharedImagePrefetcher] prefetchURLs:prefetchURLs progress:^(NSUInteger noOfFinishedUrls, NSUInteger noOfTotalUrls) {
        
} completed:^(NSUInteger noOfFinishedUrls, NSUInteger noOfSkippedUrls) {
        
}];

當(dāng)我們需要使用對應(yīng)地址的圖片時,我們只需要以url為key來獲取圖片即可

NSString *key = [[SDWebImageManager sharedManager] cacheKeyForURL:[NSURL URLWithString:imageURL]];
    UIImage *image = [[SDImageCache sharedImageCache] imageFromCacheForKey:key];
    return image;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • 前不久做了一個生成快照的需求,其中用到 SDWebImage 來下載圖片,在使用該框架的過程中也遇到了一些問題,索...
    ShannonChenCHN閱讀 14,320評論 12 241
  • SDWebImage庫的作用:提供一個UIImageView分類以支持加載來自網(wǎng)絡(luò)圖片。具有異步下載、緩存管理、同...
    逍遙晨旭閱讀 21,228評論 5 30
  • 下載 下載管理器 SDWebImageDownLoader作為一個單例來管理圖片的下載操作。圖片的下載是放在一個N...
    wind_dy閱讀 1,670評論 0 1
  • 今天是休息日,你會選擇去外面看看世界,還是呆在家里追追劇,還是看一會書,聽一會電臺?好像不管多忙,多累,雙休日...
    菩樹閱讀 193評論 0 0

友情鏈接更多精彩內(nèi)容