IOS開發-第三方SDWebImage下載網狀圖片的使用

來源:互聯網
上載者:User

標籤:

從網路上請求圖片時,沒有使用第三方的話,下載會很慢,而且堵塞線程,還要自己處理多線程問題,效果還非常不明顯,使用了SDWebImage這個第三方類庫之後,下載圖片就變的容易多了。

SDWebImage這個類庫提供一個UIImageView類別以支援載入來自網路的遠程圖片。具有緩衝管理、非同步下載、同一個URL下載次數控制和最佳化等特徵

利用CocoaPods安裝SDWebImage

在profile裡放入pod ‘SDWebImage‘, ‘~> 3.7.3‘儲存,pod isntall安裝,完成後就可以使用了

匯入

#import <SDWebImage/UIImageView+WebCache.h>

以下代碼就是使用第三方SDWebImage載入圖片

 1 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 2 { 3     NSString *ID          = @"hh"; 4     MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 5     if (!cell) { 6         cell                  = [[MyTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID]; 7     } 8     9 10     //將請求的圖片地址放入一個模型,現在取出模型11         Newmodel *goosmodel = arry[indexPath.row];12             Newmodel *model = arry[indexPath.row];13    //轉化為NSURL14             NSURL *urls = [NSURL URLWithString:model.Images];15             //        利用第三方處理圖片16             [cell.baiamge sd_setImageWithPreviousCachedImageWithURL:urls andPlaceholderImage:[UIImage imageNamed:@"圖           片載入"] options:SDWebImageCacheMemoryOnly progress:^(NSInteger receivedSize, NSInteger expectedSize) {17                 //這裡是圖片的下載進度18             } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {19                 //這裡可以做圖片下載完後要做的事情20             }];

一、options所有選項

1.詳細

*預設URL,當一個URL下載出現故障,這樣庫不會再去下載。
*這個標誌禁用這個黑名單。
*/
sdwebimageretryfailed = 1<<0
*
*映像是在使用者介面的相互作用開始,這個標誌禁用這個功能
*導致延遲下載uiscrollview降速。
*/
sdwebimagelowpriority = 1<<1;
*
這標誌磁碟上的緩衝(下載到記憶體 這個常用)(這個不推薦)
*/
sdwebimagecachememoryonly = 1<<2
*
*可以漸進式下載,顯示的映像是逐步在下載。只顯示一次完全下載映像,映像慢慢顯示的那種---可以不用設定預設映像
*/
sdwebimageprogressivedownload = 1<<3
*
*即使是緩衝的形象方面,和HTTP響應緩衝重新整理控制,如果需要的映像從遠程位置。
*磁碟緩衝將由NSURLCache 而不是sdwebimage處理而導致輕微的效能退化。

*本選項協助對付變化的映像在相同的請求URL,例如Facebook的API的剖面圖的圖片。
*如果一個緩衝的映像refreshed塊稱為一次完成,是一個緩衝映像和一次又一次的最終映像。
*使用這個標誌只有如果你不能讓你的url與嵌入式靜態緩衝破壞參數。
*/
sdwebimagerefreshcached = 1<<4
*
*在iOS 4 +,繼續下載該應用程式的映像去背景。這是實現部分由漫遊系統的研究
*額外的背景讓請求時完成。如果後台工作退出程式操作將被取消。
*/
sdwebimagecontinueinbackground = 1<<5
*


//NSMutableURLRequest.HTTPShouldHandleCookies = YES;
*/
sdwebimagehandlecookies = 1<<6
*
*讓不信任認證啟用SSL。
*測試用途有用。在生產使用的一個警告。
*/
sdwebimageallowinvalidsslcertificates = 1<<7
*
*預設情況下,圖片載入的順序排隊。這個標誌移動它們立即載入隊列的前面,而不是等待載入當前隊列(可能需要一段時間)。
*/
sdwebimagehighpriority = 1<<8
*
*預設,映像是在映像placeholder是載入的載入。這個標誌要載入延遲。
*《placeholder映像直到映像載入後完成。這個設定預設圖片就不管用了哦
*/
sdwebimagedelayplaceholder = 1<<9
*
我們通常不叫transformdownloadedimage代表法在動畫映像
*因為大多數轉碼會損壞它
*使用這個標誌來改變它們
*/
sdwebimagetransformanimatedimage = 1<<10
*
*是預設,映像添加到imageview後下載。但在某些情況下,我們想
*有手在背景映像(它與過濾或添加,應用交叉淡入動畫例如)
*使用這個標誌,如果你想手動設定映像在成功完成時
*/
sdwebimageavoidautosetimage = 1<<11

總的來說,除了sdwebimagerefreshcached和sdwebimagecachememoryonly,其他算是常用吧!用起來沒有太大區別,看具體項目需求

2.簡單

   //失敗後URL是黑名單庫不會繼續重試       SDWebImageRetryFailed = 1 << 0,             //映像是在使用者介面的相互作用開始,這個標誌禁用這個功能
       *導致延遲下載uiscrollview降速。
      SDWebImageLowPriority = 1 << 1,              //只進行記憶體緩衝       SDWebImageCacheMemoryOnly = 1 << 2,              //這個標誌可以漸進式下載,顯示的映像是逐步在下載       SDWebImageProgressiveDownload = 1 << 3,              //重新整理緩衝       SDWebImageRefreshCached = 1 << 4,              //後台下載       SDWebImageContinueInBackground = 1 << 5,              //NSMutableURLRequest.HTTPShouldHandleCookies = YES;              SDWebImageHandleCookies = 1 << 6,              //允許使用無效的SSL認證       //SDWebImageAllowInvalidSSLCertificates = 1 << 7,              //優先下載       SDWebImageHighPriority = 1 << 8,              //延遲預留位置       SDWebImageDelayPlaceholder = 1 << 9,              //改變動畫形象       SDWebImageTransformAnimatedImage = 1 << 10,

IOS開發-第三方SDWebImage下載網狀圖片的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.