我有图像网址数组。我想将图像显示到UIImageView中。
现在我将URL转换为NSData,然后将其转换为UIImage,然后尝试将其加载到UIImageView中。
但是这需要很多时间。
有没有更好的方法可以更快更好地加载图像?
答案 0 :(得分:3)
尽管这里的所有答案都告诉你在一行代码中执行此操作,但遗憾的是,URL连接速度或数据/图像解码没有任何区别。如果你想要一个更快的方式TYPE代码然后很好,但我会使用类别添加到UIImageView ....
@interface UIImageView (URL)
- (void)loadFromUrl:(NSString *)aUrl;
@end
@implementation UIImageView (URL)
- (void)loadFromUrl:(NSString *)aUrl {
NSURL *url = [NSURL urlWithString:aUrl];
NSData *data = [NSData dataWithContentsOfURL:url]
UIImage *image = [UIImage imageWithData:data];
if(image != nil) {
[self setImage:image];
}
}
@end
现在您可以包含标题并执行...
[myImageView loadFromUrl:@"http://myurl.com/image.jpg"];
更多类别(我将把这个添加到我的列表中!)检查here.这些都是我有用的,你可能会发现它们也很有用! :)
答案 1 :(得分:1)
在一个声明中使用所有内容。
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:MyURL]]];
答案 2 :(得分:0)
[UIImage imageWithData:[NSData dataWithContentsOfURL:]]
答案 3 :(得分:0)
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];
答案 4 :(得分:0)
试试这个: -
图像是UIImage,imageView是UIImageView
NSData *receivedData = [NSData dataWithContentsOfURL:@"yoururl"];
self.image=nil;
UIImage *img = [[UIImage alloc] initWithData:receivedData ];
self.image = img;
[img release];
[self.imageView setImage:self.image];