Kingfisher源碼解析之Options解釋

Kingfisher源碼解析系列辆飘,由于水平有限婶博,哪里有錯且预,肯請不吝賜教

  1. targetCache,originalCache
    • 類型ImageCache,Kingfisher中的緩存管理器,提供內(nèi)存和磁盤緩存
    • targetCache最終展示出來的緩存管理器
    • originalCache原始數(shù)據(jù)的緩存管理器
    • 默認(rèn)值都為nil给僵,為nil時毫捣,使用ImageCache(name: "default")
  2. downloader
    • 類型ImageDownloader,圖片下載器帝际,提供圖片下載的功能
    • 默認(rèn)值為nil蔓同,為nil時,使用ImageDownloader(name: "default")
  3. downloadPriority 下載優(yōu)先級
  4. transition
    • 類型ImageTransition蹲诀,默認(rèn)是為ImageTransition.none
    • 為imageView顯示image的時候提供過渡動畫
  5. forceTransition
    • 類型為Bool斑粱,默認(rèn)值false
    • 是否強制使用過渡動畫,當(dāng)值為true時则北,transition不為.none時就使用過渡動畫痕慢,當(dāng)值為false時掖举,只有transition不為.none并且不使用緩存時,才使用緩存動畫
  6. forceRefresh 是否強制刷新方篮,若值為true恭取,則不使用緩存
  7. fromMemoryCacheOrRefresh 當(dāng)值為true時熄守,刷新的時候裕照,若使用緩存晋南,則只使用內(nèi)存緩存羔砾,不去磁盤緩存
  8. cacheMemoryOnly 是否只使用內(nèi)存緩存
  9. onlyFromCache 是否只從緩存中加載
  10. backgroundDecode 是否在子線程去解碼
  11. preloadAllAnimationData
    • 是否預(yù)加載GIF圖每一幀畫面,默認(rèn)值為false
    • 若使用UIImageView.setImage(),去加載圖片,則會被強制設(shè)置成true政溃,因為
     @objc extension UIImageView {
        func shouldPreloadAllAnimation() -> Bool { return true }
     }
    
     public func setImage(
        with source: Source?,
        placeholder: Placeholder? = nil,
        options: KingfisherOptionsInfo? = nil ...
       -> DownloadTask? {
             ...
            //若shouldPreloadAllAnimation()的值為true
            //則把preloadAllAnimationData設(shè)為true
            //而ImageView中的shouldPreloadAllAnimation()一直為true
             if base.shouldPreloadAllAnimation() {
                options.preloadAllAnimationData = true
             }
            ...  
    } 
    
    
  12. onlyLoadFirstFrame 若圖片是GIF圖時董虱,是否只顯示第一幀
  13. callbackQueue,processingQueue
    • callbackQueue,圖片處理結(jié)束之后,回調(diào)所在的隊列云头,默認(rèn)值mainCurrentOrAsync
    • processingQueue淫半,處理圖片時所在的隊列,比如利用processor給圖片添加圓角等操作時昏滴,所在的隊列砌溺,默認(rèn)使用一個串行的子隊列
    • 一共有四個值可選擇.mainAsync,.mainCurrentOrAsync,.untouch,.dispatch(DispatchQueue)
    • .mainAsync主線程中異步執(zhí)行
    • .mainCurrentOrAsync规伐,若當(dāng)前線程是主線程,則直接執(zhí)行鲜棠,否則在主線程異步執(zhí)行
    • .untouch 不改變當(dāng)前所在的線程
    • .dispatch(DispatchQueue) 在指定的隊列中執(zhí)行
  14. requestModifier 發(fā)送請求時對原始的請求進(jìn)行修改豁陆,返回新的Request
  15. redirectHandler 當(dāng)請求發(fā)生重定向是盒音,自定義的一些處理
  16. processor 加工者祥诽,自定義data|image轉(zhuǎn)成image的邏輯雄坪,
  17. imageModifier image修飾器屯蹦,對image做一些修改绳姨,比如返回image.withRenderingMode(renderingMode)
  18. cacheSerializer 定義圖片序列化和反序列化
  19. keepCurrentImageWhileLoading 當(dāng)加載一個新圖時,是否要保持當(dāng)前的圖片
  20. cacheOriginalImage 是否要緩存原始的數(shù)據(jù)
  21. onFailureImage 加載失敗時阔挠,要展示的圖片
  22. alsoPrefetchToMemory 預(yù)加載時,需要從磁盤加載時谒亦,是否也需要同步到內(nèi)存中
  23. loadDiskFileSynchronously 從磁盤中加載時竭宰,是否同步的去加載
  24. memoryCacheExpiration份招,diskCacheExpiration 設(shè)置內(nèi)存切揭、磁盤緩存過期時間
  25. memoryCacheAccessExtendingExpiration
    • 當(dāng)從內(nèi)存锁摔、磁盤中取圖片時廓旬,往后延長過期時間的策略
    • 有以下幾個值:.none,.cacheTime,.expirationTime(_ expiration: StorageExpiration)
    • .none保持原來的過期時間
    • .cacheTime 設(shè)置過期時間為當(dāng)前時間加上原來的過期時間
    • .expirationTime(_ expiration: StorageExpiration) 設(shè)置過期時間到指定時間
  26. alternativeSources 當(dāng)加載失敗時,可供替代的數(shù)據(jù)源
  27. onDataReceived 接收到數(shù)據(jù)時谐腰,需要回調(diào)時,可設(shè)置此屬性十气,比如setImage時設(shè)置的DownloadProgressBlock,就是在里面封裝了此屬性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叶眉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子饱溢,更是在濱河造成了極大的恐慌,老刑警劉巖走芋,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗽上,死亡現(xiàn)場離奇詭異,居然都是意外死亡熄攘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門彼念,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挪圾,“玉大人浅萧,你說我怎么就攤上這事≌芩迹” “怎么了洼畅?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長棚赔。 經(jīng)常有香客問我帝簇,道長,這世上最難降的妖魔是什么靠益? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任丧肴,我火速辦了婚禮,結(jié)果婚禮上胧后,老公的妹妹穿的比我還像新娘芋浮。我一直安慰自己,他們只是感情好壳快,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布纸巷。 她就那樣靜靜地躺著,像睡著了一般眶痰。 火紅的嫁衣襯著肌膚如雪瘤旨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天竖伯,我揣著相機與錄音存哲,去河邊找鬼。 笑死黔夭,一個胖子當(dāng)著我的面吹牛宏胯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播本姥,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼肩袍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婚惫?” 一聲冷哼從身側(cè)響起氛赐,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎先舷,沒想到半個月后艰管,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡蒋川,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年牲芋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡缸浦,死狀恐怖夕冲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裂逐,我是刑警寧澤歹鱼,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站卜高,受9級特大地震影響弥姻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掺涛,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一庭敦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸽照,春花似錦螺捐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至诞外,卻和暖如春澜沟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峡谊。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工茫虽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人既们。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓濒析,卻偏偏與公主長得像,于是被迫代替她去往敵國和親啥纸。 傳聞我的和親對象是個殘疾皇子号杏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容