SDWebImage常用認(rèn)識(shí):
一春霍、SDWebImage原理:(管理者[SDWebImageManager]、緩存處理[SDImageCache]指攒、下載器[SDWebImageDownloader]慷妙、轉(zhuǎn)碼器[SDWebImageDecoder])
過(guò)程:setImageWithURL入口,先設(shè)置展位圖片幽七,---->交給SDWebImageManager去處理加載網(wǎng)絡(luò)圖片:----->到downloadWithURL方法------>先經(jīng)過(guò)SDImageCache查找緩存-------->(如果緩存沒(méi)有)生成隊(duì)列景殷,去磁盤查找資源------->(如果這些方式都沒(méi)找到,則)------->SDWebImageDownloader去網(wǎng)絡(luò)下載(在代理方法中利用imageIO澡屡,監(jiān)聽(tīng)下載進(jìn)度等)-------->下載完成給SDWebImageDecoder(做圖片解碼處理猿挚,也是在NSOperationQueue中執(zhí)行,之后回調(diào)主線程)-------->回調(diào)給SDWebImageDownloader(圖片加載完成)驶鹉。注意:圖片加載完成后會(huì)自定緩存到SDImageCache中绩蜻,同時(shí)也會(huì)寫入磁盤。
二室埋、SDWebImage能給我們?nèi)粘5拈_(kāi)發(fā)中解決什么問(wèn)題:
? 1办绝、給UIImageView異步加載網(wǎng)絡(luò)圖片,也可以設(shè)置高亮狀態(tài)網(wǎng)絡(luò)圖片
? 2姚淆、異步下載網(wǎng)絡(luò)圖片
? 3孕蝉、把網(wǎng)絡(luò)圖片加入cache、從緩存中取出圖片
? 4腌逢、異步給UIButton設(shè)置網(wǎng)絡(luò)圖片
? 5降淮、加載GIF圖片
注意:SDWebImage回調(diào)原理是:代理。搏讶。佳鳖。結(jié)果都是回調(diào)的霍殴,處理時(shí)勿忘代理。系吩。內(nèi)部用的是異步線程(NSOperationQueue)来庭。