1

ビューコントローラに画像ビューを挿入しましたが、実際に画像を表示する方法がわかりません。

私はこれを試しました:

- (void)viewDidLoad
{
[super viewDidLoad];


id path = @"http://thestylishdog.com/wp-content/uploads/2009/07/cute-dog2.jpg";
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImageView *firstImage = [[UIImage alloc] initWithData:data cache:NO];
}

しかし、「UIimageの表示された@interfaceはセレクターinitwithData:cacheを宣言していません」と表示されます。

この行を.hファイルに追加しようとしましたが、どちらも機能しません。

@property (nonatomic, retain) UIImageView *firstImage;

最後のステップは、その.hcreateクラスをビューコントローラのUIimageに割り当てることであることを知っています。

4

3 に答える 3

2

このコードを試して、パスから画像を追加できますimageview

 NSURL *url = [NSURL URLWithString:@"http://thestylishdog.com/wp-content/uploads/2009/07/cute-dog2.jpg"];
 NSData *data = [NSData dataWithContentsOfURL:url];
 UIImage *image = [UIImage imageWithData:data];
 imageView = [[UIImageView alloc] initWithImage:image];

GUIを介して追加する場合はimageView、アウトレットとして表示することを忘れないでください。それ以外の場合は、ビューに次のように追加してください。xibsubview

于 2013-03-06T23:43:37.933 に答える
1

応答に[[UIImage alloc] initWithData:data]; を使用してキャッシュできるようにしてください。NSCachedURLResponse

于 2013-03-06T23:44:15.453 に答える
0

これを使用して、URLから画像をロードできます。

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

ただし、これにより、画像が読み込まれるまでアプリがブロックされます。Webからの画像を使用する場合は、画像を非同期で読み込むのが最適です。画像が別のスレッドでダウンロードされた場合、ユーザーはアプリを操作し続けることができます。遅延読み込み画像についてアップルからこの例を確認できます:LazyTableImages

または、このチュートリアルで非同期画像のダウンロードを確認することもできます: ダウンロードされた画像を含むUItables

于 2013-03-06T23:45:31.037 に答える