我在视图控制器中插入了一个图像视图,但实际上并不知道如何在其上显示图像。
我试过了:
- (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 create class分配给viewcontroller中的UIimage。
答案 0 :(得分: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
显示为xib
的插座,否则请将其添加到您的视图subview
答案 1 :(得分:1)
尝试[[UIImage alloc] initWithData:data];
您可以使用NSCachedURLResponse
进行缓存以进行回复。
答案 2 :(得分:0)
您可以使用此方法从网址加载图片:
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
但这会阻止你的应用,直到你的图片加载。在使用Web上的图像时,最好以异步方式加载图像。如果图像是在不同的线程中下载的,则用户可以继续与应用程序进行交互。您可以从Apple查看有关延迟加载图片的示例:LazyTableImages
或者您可以查看本教程以获取异步图像下载: UItables with downloaded images