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;

我知道最后一步是将 .h 创建类分配给视图控制器中的 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];

但这会阻止您的应用程序,直到您的图像加载。使用来自网络的图像时,最好异步加载图像。如果图像是在不同的线程中下载的,用户可以继续与应用程序交互。您可以从苹果查看这个关于延迟加载图像的示例:LazyTableImages

或者您可以查看本教程以进行异步图像下载: 带有下载图像的 UItables

于 2013-03-06T23:45:31.037 回答