開源中國iOS客戶端學習——(十四)使用EGOImageLoading異步加載圖片

     EGOImageLoading 是一個用的比較多的異步加載圖片的第三方類庫,簡化開發過程,咱們直接傳入圖片的url,這個類庫就會自動幫咱們異步加載和緩存工做;當從網上獲取圖片時,若是網速慢圖片短期內不能下載下來,能夠先用一張本地的圖片代替顯示,還能夠進行其餘操做,讓圖片下載完成後自動替換佔位圖片而不影響用戶體驗;git


EGOImageLoading 的GitHub 下載地址  https://github.com/enormego/EGOImageLoadinggithub

GitHub上下載下來的類庫會有一個Demo,若是運行出錯說明缺乏EGOCache類,在https://github.com/enormego/EGOCache添加道工程之中,或者直接在附件上下載緩存


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

在我搜索客戶端中哪些類使用了這個類庫的時候和預期的並不同,在工程中有不少地方須要使用到圖片的異步加載,而使用EGOImageLoading類庫加載只有三個地方,也能夠說是兩個地方網絡

一是在顯示我的資料加載我的圖片,顯示我的信息時候使用的。異步

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



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

聲明一個 EGOImageView管理圖片的異步加載url

@property (strong,nonatomic) EGOImageView * egoImgView;

在ViewDidLoad方法中spa



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


而後就是在reload()方法中圖片加載處理,先從網絡解析獲取圖片的url資源,若是未獲取到圖片url仍然顯示佔位圖片,若是獲取到了就將佔位圖片更換爲解析獲取的圖片



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

以上就是使用EGOImageLoading 類庫進行圖片的異步加載;


如下是一個使用EGOImageLoading 類庫進行圖片異步加載的示例Demo,下載見附件





在開源中國iOS 客戶端的問答、動彈、個人三個視圖也涉及到圖片的顯示加載問題,剛開始誤覺得使用EGOImageLoading 類庫異步加載圖片,而其實是一個延遲加載,先用佔位圖片顯示,而後使用IconDownloader類庫從服務器端將圖片下載到本地緩存,在進行加載顯示;

相關文章
相關標籤/搜索