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