SDWebImage中文說(shuō)明

WebImage

前端時(shí)間想詳細(xì)的了解下AFNetworking庫(kù)壳繁,所以想著看看官方的API吧绷杜。想想既然看看就做下筆記吧垃瞧,既然做了筆記為何不試著翻譯一下呢。然后就有了之前的文章《AFNetworking說(shuō)明書》. 之后突然有時(shí)間覺得空閑了,就想著再看一篇API文檔吧吭产。
選中了《SDWebImage說(shuō)明書》這篇文章侣监。選中這個(gè)原因是使用的多,并且評(píng)論說(shuō)代碼風(fēng)格好臣淤。與AFNetworking說(shuō)明書不分上下橄霉。

推薦下自己的文章哈。有興趣的可以看看邑蒋,當(dāng)然本人英文菜鳥姓蜂,翻譯不對(duì)的地方,請(qǐng)多多賜教医吊。

涉及到的類钱慢,分類和協(xié)議需要點(diǎn)擊跳轉(zhuǎn)到新頁(yè)面查看。

這個(gè)庫(kù)提供一個(gè)具有緩存功能的異步圖片下載器卿堂。為了方便束莫,我們添加了UI元素的分類,如UIImageView, UIButton, MKAnnotationView草描。

特性

  • 創(chuàng)建分類為UIImageView览绿,UIButton,MKAnnotationView增加網(wǎng)絡(luò)圖片和緩存管理穗慕。
  • 一個(gè)異步的圖片下載器饿敲。
  • 一個(gè)具有自動(dòng)緩存過期處理的異步內(nèi)存+磁盤的圖片緩存。
  • 一個(gè)后臺(tái)的圖片解壓器逛绵。
  • 確保相同的URL不會(huì)下載多次怀各。
  • 確保錯(cuò)誤的URL不會(huì)一次又一次的重試。
  • 確保主線程不會(huì)被阻塞暑脆。
  • 性能優(yōu)化渠啤。
  • 使用GCD 和 ARC。

支持圖片格式化

  • 由UIImage支持的圖片格式添吗,如JPEG,PNG等份名,包括GIF碟联。
  • WebP格式,包含動(dòng)態(tài)WebP(使用WebP子空間)僵腺。

要求

  • iOS 7.0或以上版本
  • tvOS 9.0或以上版本
  • watchOS 2.0或以上版本
  • OS X10.8或以上版本
  • Xcode7.3或以上版本

向后兼容

  • iOS5和6版本鲤孵,使用3.想到3.7.6之間的任意版本。
  • 小于iOS5.0的版本辰如,請(qǐng)使用最后的2.0版本普监。

開始

  • 閱讀“Readme文檔”。
  • 閱讀“如果使用章節(jié)”。
  • 閱讀“@CocoaDocs文檔”凯正。
  • 閱讀“為何SDWebImage比X好”毙玻。
  • 從Github下載工程或使用CocoaPods更簡(jiǎn)單嘗試SDWebImage樣例。
  • 查看“安裝步驟”廊散。
  • 閱讀“SDWebImage4.0遷移導(dǎo)向”了解3.x到4.x的變化桑滩。

睡在使用

  • 找出“誰(shuí)在使用SDWebImage”并添加你的app到列表中。

交流

  • 如果你需要幫助允睹,請(qǐng)使用Stack Overflow运准。(‘sdwebiamge’標(biāo)簽)
  • 如果你想詢問一般的問題,請(qǐng)使用Stack Overflow缭受。
  • 如果有發(fā)現(xiàn)一個(gè)bug胁澳,請(qǐng)新開一個(gè)問題。
  • 如果你有一個(gè)特性請(qǐng)求米者,請(qǐng)新開一個(gè)問題韭畸。
  • 如果有想投稿,請(qǐng)?zhí)峤灰粋€(gè)pull請(qǐng)求塘雳。

怎么使用

Objective-c

#import <SDWebImage/UIImageView+WebCache.h>
...
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
             placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

Swift

import SDWebImage

imageView.sd_setImage(with: URL(string: "http://www.domain.com/path/to/image.jpg"), placeholderImage: UIImage(named: "placeholder.png"))
  • 想了解怎么使用這個(gè)庫(kù)和清晰示例的詳細(xì)信息陆盘,詳見“怎么使用的詳情”。

動(dòng)畫圖片(GIF)支持

  • 從4.0版本開始败明,我們依賴FLAnimatedImage來(lái)處理我們的動(dòng)畫圖像隘马。
  • 如果你使用cocoapods,添加‘SDWebImage/GIF’到你的podfile文件妻顶。
  • 使用它酸员,只需確保你使用FLAnimatedImageView代替UIImageView。
  • 注意:有一個(gè)向后兼容特性讳嘱,所以如果你任然嘗試加載GIF到UIImageView中幔嗦,它只會(huì)顯示第一幀的靜態(tài)圖片。
  • 重要:FLAnimatedImage只工作在iOS平臺(tái)沥潭。在OX X系統(tǒng)邀泉,使用NSImageView并設(shè)置animates為YES來(lái)顯示整個(gè)動(dòng)畫圖片,設(shè)置為NO則只顯示第一幀钝鸽。其他的所有平臺(tái)(tvOS汇恤,watchOS),我們會(huì)退回到上面描述的向后兼容特性拔恰。

常見問題

UITableViewCell中使用動(dòng)態(tài)圖片大小

UITableView通過檢測(cè)第一張圖片的大小來(lái)設(shè)置一個(gè)單元格因谎。如果你的遠(yuǎn)程圖片與你的默認(rèn)圖片大小不一致,有可能碰到奇怪的圖片變形問題颜懊。以下的文章提供了一個(gè)解決這個(gè)問題的思路:http://www.wrichards.com/blog/2011/11/sdwebimage-fixed-width-cell-images/.

處理圖片刷新

SDWebImage默認(rèn)具有非常強(qiáng)烈的緩存機(jī)制财岔。它會(huì)忽略HTTP服務(wù)器返回中控制頭的所有緩存類型风皿,將無(wú)限制的緩存返回的圖片。它意味著你的圖片URLS是靜態(tài)的URLS并指向絕不會(huì)修改的圖片匠璧。如果指向的圖片發(fā)生了改變桐款,URL部分也應(yīng)該相應(yīng)的修改。
如果你沒有控制你正在使用的圖片服務(wù)器患朱,那么當(dāng)圖片內(nèi)容發(fā)生修改時(shí)你不能修改圖片的URL鲁僚。這種情況以Facebook的頭像URLS為例。這種情況下裁厅,你可以使用SDWebImageRefreshCached標(biāo)簽冰沙。這將稍微降低性能但是將遵守HTTP緩存控制頭:

[imageView sd_setImageWithURL:[NSURL URLWithString:@"https://graph.facebook.com/olivier.poitrey/picture"]
             placeholderImage:[UIImage imageNamed:@"avatar-placeholder.png"]
                      options:SDWebImageRefreshCached];

添加一個(gè)進(jìn)度指示器

在你調(diào)用sd_setImageWithURL之前添加以下代碼

[imageView sd_setShowActivityIndicatorView:YES];
[imageView sd_setIndicatorStyle:UIActivityIndicatorViewStyleGray];
imageView.sd_setShowActivityIndicatorView(true)
imageView.sd_setIndicatorStyle(.Gray)

安裝

一共有3個(gè)方法在你的工程中使用SDWebImage:

  • 使用CocoaPods
  • 使用Carthage
  • 通過克隆工程添加到你的倉(cāng)庫(kù)

PODFILE

platfrom :ios, '7.0'
pod 'SDWebImage', '~> 4.0'

如果你在使用Swift,確保添加了use_frameworks!和設(shè)置目標(biāo)版本為iOS 8+:

platform: ios, '8.0'
use_frameworks!

SUBSPECS
現(xiàn)在有4個(gè)有效的子模塊:Core执虹,MapKit拓挥,GIF和WebP(這意味著你可以只安裝SDWebImage的指定模塊。默認(rèn)袋励,你只獲取Core模塊侥啤,所以如果你需要WebP,你需要指定它)茬故。
Podfile樣例:

pod 'SDWebImage/WebP'

CARTFILE

github "rs/SDWebImage"

通過克隆倉(cāng)庫(kù)安裝

  • 詳見“手動(dòng)安裝”盖灸。

在你的源文件中引入頭文件

在你需要使用這個(gè)庫(kù)的源文件中,引入頭文件:

##import <SDWebImage/UIImageView+WebCache.h>

編譯工程

這點(diǎn)呢磺芭,你的工作空間編譯不能有錯(cuò)誤赁炎。如果你有問題,發(fā)送你的問題钾腺,社區(qū)可以幫助你解決它徙垫。

作者

  • Olivier Poitrey

合作者

  • Konstantinos K.
  • Bogdan Poplauschi
  • Chester Liu

許可

所有源代碼的許可都在MIT許可中。

架構(gòu)

類圖表
時(shí)序圖表

類說(shuō)明

協(xié)議說(shuō)明

分類說(shuō)明

常量說(shuō)明

// END 拉下閱讀量而已放棒,沒有干貨姻报。 接下去想學(xué)習(xí)下YY大神的代碼,希望能夠堅(jiān)持看完吧间螟。Come onN庑!厢破!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末邮府,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子溉奕,更是在濱河造成了極大的恐慌,老刑警劉巖忍啤,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件加勤,死亡現(xiàn)場(chǎng)離奇詭異仙辟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鳄梅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門叠国,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人戴尸,你說(shuō)我怎么就攤上這事粟焊。” “怎么了孙蒙?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵项棠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我挎峦,道長(zhǎng)香追,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任坦胶,我火速辦了婚禮透典,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘顿苇。我一直安慰自己峭咒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布纪岁。 她就那樣靜靜地躺著凑队,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜂科。 梳的紋絲不亂的頭發(fā)上顽决,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音导匣,去河邊找鬼才菠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贡定,可吹牛的內(nèi)容都是我干的赋访。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缓待,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蚓耽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起旋炒,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤步悠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瘫镇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鼎兽,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡答姥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谚咬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹦付。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖择卦,靈堂內(nèi)的尸體忽然破棺而出敲长,到底是詐尸還是另有隱情,我是刑警寧澤秉继,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布祈噪,位于F島的核電站,受9級(jí)特大地震影響秕噪,放射性物質(zhì)發(fā)生泄漏钳降。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一腌巾、第九天 我趴在偏房一處隱蔽的房頂上張望遂填。 院中可真熱鬧,春花似錦澈蝙、人聲如沸吓坚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)礁击。三九已至,卻和暖如春逗载,著一層夾襖步出監(jiān)牢的瞬間哆窿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工厉斟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挚躯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓擦秽,卻偏偏與公主長(zhǎng)得像码荔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子感挥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • 前不久做了一個(gè)生成快照的需求缩搅,其中用到 SDWebImage 來(lái)下載圖片,在使用該框架的過程中也遇到了一些問題触幼,索...
    ShannonChenCHN閱讀 14,068評(píng)論 12 241
  • 這個(gè)庫(kù)提供一個(gè)具有緩存功能的異步圖片下載器硼瓣。為了方便,我們添加了UI元素的分類置谦,如UIImageView, UIB...
    _阿南_閱讀 952評(píng)論 0 6
  • 技術(shù)無(wú)極限巨双,從菜鳥開始噪猾,從源碼開始。 由于公司目前項(xiàng)目還是用OC寫的項(xiàng)目筑累,沒有升級(jí)swift 所以暫時(shí)SDWebI...
    充滿活力的早晨閱讀 12,646評(píng)論 0 2
  • 圖片下載的這些回調(diào)信息存儲(chǔ)在SDWebImageDownloader類的URLOperations屬性中,該屬性是...
    怎樣m閱讀 2,381評(píng)論 0 1
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)丝蹭、插件慢宗、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評(píng)論 4 62