-1

重複の可能性:
イメージを非同期でダウンロード

複数の画像を非同期でダウンロードしたいと考えています。10 個の画像の配列があり、これらの画像を 10uiimageviewで表示したいのですが、このようにしていますが、画像は 1 つしか表示されません

- (void)loadImage {
  NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[myarray objectatindex:0]]];
  UIImage* image = [[[UIImage alloc] initWithData:imageData] autorelease];
  [imageData release];
  [self performSelectorOnMainThread:@selector(displayImage:) withObject:image waitUntilDone:NO];
}

The final method we need to create takes in the image to display and sets it on our image view.

- (void)displayImage:(UIImage *)image {
  [imageView setImage:image]; //UIImageView
}

10種類のメソッドを作成せずに、複数の画像を別の場所に表示する方法を教えてください。

4

2 に答える 2

1

同期の のinitWithContentsOfURLメソッドは使用しないでください。NSData

ここで見つけることができる UIImageView+AFNetworking カテゴリを検討することをお勧めします。これUIImageViewにより、コンテンツを非同期的に取得する機能が追加されます。

コメントで示唆されているように、基本的に同じことを行うSDWebImageを見ることもできます。

于 2012-12-30T12:54:48.503 に答える
0

それらのクラスをプロジェクトに入れるだけで、すべてのクラスをインポートする必要があります。sdwebimage の場合、「loadimagefrom url: withplaceholderimage」のような uiimageview のメソッドを取得します。メソッド名を思い出せないので、一度確認してください。

于 2012-12-30T13:55:12.623 に答える