開源中國iOS用戶端學習——(十四)使用EGOImageLoading非同步載入圖片

來源:互聯網
上載者:User

EGOImageLoading 是一個用的比較多的非同步載入圖片的第三方類庫,簡化開發過程,我們直接傳入圖片的url,這個類庫就會自動幫我們非同步載入和緩衝工作;當從網上擷取圖片時,如果網速慢圖片短時間內不能下載下來,可以先用一張本地的圖片代替顯示,還可以進行其他動作,讓圖片下載完成後自動替換佔位圖片而不影響使用者體驗;

EGOImageLoading 的GitHub :  https://github.com/enormego/EGOImageLoading

GitHub上下載下來的類庫會有一個Demo,如果運行出錯說明缺少EGOCache類,在https://github.com/enormego/EGOCache添加道工程之中,或者直接點擊這裡下載

首先還是來分析一下開源中國iOS用戶端如何使用這個第三方類庫

在我搜尋用戶端中哪些類使用了這個類庫的時候和預期的並不一樣,在工程中有很多地方需要使用到圖片的非同步載入,而使用EGOImageLoading類庫載入只有三個地方,也可以說是兩個地方

一是在顯示設定檔載入個人圖片,顯示個人資訊時候使用的。

二個是顯示你的粉絲或者你關注的人,想查看TA的資料的時候

  


在MyView類和UserView2類中,使用方法一樣

聲明一個 EGOImageView管理圖片的非同步載入

@property (strong,nonatomic) EGOImageView * egoImgView;

在ViewDidLoad方法中

//    初始化    self.egoImgView = [[EGOImageView alloc] initWithFrame:CGRectMake(15, 4, 70, 70)];//    佔位圖片    self.egoImgView.image = [UIImage imageNamed:@"big_avatar_loading.png"];//    設定圖片圓角弧度    egoImgView.layer.cornerRadius = 40.0f;    [self.view addSubview:self.egoImgView];

然後就是在reload()方法中圖片載入處理,先從網路解析擷取圖片的url資源,如果未擷取到圖片url仍然顯示佔位圖片,如果擷取到了就將佔位元影像片更換為解析擷取的圖片

            //頭像            NSString *portrait_str = [TBXML textForElement:portrait];            if ([portrait_str isEqualToString:@""])             {                self.egoImgView.image = [UIImage imageNamed:@"big_avatar.png"];            }            else            {                self.egoImgView.imageURL = [NSURL URLWithString:portrait_str];            }  

以上就是使用EGOImageLoading 類庫進行圖片的非同步載入;

以下是一個使用EGOImageLoading 類庫進行圖片非同步載入的樣本Demo
:http://download.csdn.net/detail/duxinfeng2010/5492125



在開源中國iOS 用戶端的問答、動彈、我的三個視圖也涉及到圖片的顯示載入問題,剛開始誤以為使用EGOImageLoading 類庫非同步載入圖片,而實際上是一個消極式載入,先用佔位圖片顯示,然後使用IconDownloader類庫從伺服器端將圖片下載到本機快取,在進行載入顯示;


    



原創部落格歡迎轉載分享,請註明出處http://blog.csdn.net/duxinfeng2010


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.