SDWebImage中為imageview提供了UIImage+webcache.h類敞映,這個(gè)分類中有一個(gè)sd_setimageWithUrl:,會(huì)在圖片出現(xiàn)前先顯示占位圖樱蛤,當(dāng)真實(shí)圖片加載出來(lái)就替換占位圖次兆。
加載過(guò)程如下:
1蔑鹦、首先在webimagecache中尋找圖片對(duì)應(yīng)的緩存颅夺,它是以u(píng)rl為數(shù)據(jù)索引先在內(nèi)存中查找是否有緩存;
2对供、如果沒(méi)有緩存位他,就通過(guò)md5處理過(guò)的key來(lái)在磁盤(pán)中查找對(duì)應(yīng)的數(shù)據(jù),如果找到就會(huì)把磁盤(pán)中的數(shù)據(jù)加到內(nèi)存中产场,并顯示出來(lái)鹅髓;
3、如果內(nèi)存和磁盤(pán)中都沒(méi)有找到京景,就會(huì)向遠(yuǎn)程服務(wù)器發(fā)送請(qǐng)求窿冯,開(kāi)始下載圖片;
4确徙、下載完的圖片加入緩存中醒串,并寫(xiě)入到磁盤(pán)中;
5鄙皇、整個(gè)獲取圖片的過(guò)程是在子線程中進(jìn)行芜赌,在主線程中顯示。