2012-03-27 6 views
0

ほとんどすべてのiosアプリケーションに「フィード」オプションがあります。 通常、ウェブから画像を取り込み、キャッシュしたり、ページを処理したり、「プル・トゥ・アップデート・オプション」など、プログラミングを含むプログラミング。画像キャッシュと「プルトゥーアップデート」オプション付きテーブルビュー

しかし、そのためのスタンドアットソリューションがないように見えますか?

  • 私は「3つの20」を試しました。本当に大きく、複雑なライブラリで、多くのモジュールがありました。それは本当に良い文書が欠けている!また、キャッシュから画像を取り込む際に「減速」もありました。

  • 多分私は小さなタスクごとに別々の小さなライブラリを別々に使うべきですか? HJCache、EGOなどのように。

  • また、ライブラリがなくてもすべてをゼロから書き込むほうがいいですか?

ここでベストプラクティスについてアドバイスをしてください。私は本当に固執しています。

答えて

0

This oneは、プルしてリフレッシュするのは非常に簡単です。画像の読み込みについては

は、私はUIImageViewのために、以下のカテゴリを書いた:

// .h 
@interface UIImageView (UIImageView_Load) 
- (void)loadFrom:(NSURL *)url completion:(void (^)(UIImage *))completion; 
@end 

// .m 
#import "UIImageView+Load.h" 
#import <QuartzCore/QuartzCore.h> 

@implementation UIImageView (UIImageView_Load) 

- (void)loadFrom:(NSURL *)url completion:(void (^)(UIImage *))completion { 

    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
     if (data) { 
      self.image = [UIImage imageWithData:data]; 
      if (completion) completion(self.image); 
     } 
    }]; 
} 

@end 

// To use it when building a cell 

//... 

MyModelObject *myModelObject = [self.myModel objectAtIndex:indexPath.row]; 
if (myModelObject.image) { 
    cell.imageView.image = myModelObject.image; 
} else { 
    NSURL *url = [NSURL urlWithString:myModelObject.imageUrl]; 
    [cell.imageView loadFrom:url completion:^(UIImage *image) { 
     // cache it in the model 
     myModelObject.image = image; 
     cell.imageView.image = image; 
    }]; 
} 

// ... 
+0

答えてくれてありがとう、@ダン!残念ながら、キャッシングソリューションは含まれていません。しかし、私はレアの「プッシュする」という試みを試みます。 – Danik

+0

@ダニク - 確かに。私が貼り付けたそのコードは、コールバックのモデル内で遅延ロードとキャッシュを行います。 – danh

+0

はい、今ご覧のとおり、myModelObject.imageにキャッシュします。 didReceiveMemoryWarningでキャッシュをクリアするか、最大サイズを制限しますか? – Danik

0

私がリフレッシュプルだけでなく、下向きの無限スクロール扱うリア・カルバーのPull to Refreshライブラリーのファン、またはこのSTableViewControllerよ。

画像を読み込むには、DailyMotionアプリからSDWebImageをお試しください。

+0

ありがとう!また、私の現在のプロジェクトでは、LeahのPull to RefreshとSDWebImageを使用します。 – Danik

関連する問題