2012-12-02 59 views
0

我试图从网站加载图像到桌面视图。我可以加载存储在项目中的图像,但无法从网络获取图像。我知道我在这里失去了一些东西。有任何想法吗?从网站加载图像到桌面视图

UIImage *cellImage = [UIImage imageNamed: 
@"http://www.website.com/thumbs/img_10.jpg"]; 
cell.imageView.image = cellImage; 

任何帮助将是伟大的!谢谢!

+0

见LazyTableImages示例应用程序。它显示了如何从Internet正确加载图像并将它们放入表格单元格中。 – rmaddy

+0

谢谢@rmaddy,我将以JSON格式返回tableview的所有其余内容,是否有一种“lazier”的方式来做到这一点,因为我把URL从JSON的图像拉到图像? – Brandon

+0

您必须使用Web请求自己加载图像数据(或使用其中一个URL函数)。您无法使用带有imageNamed:的网址。 – dcow

回答

0

您可以使用它像这样:

NSURL *imageURL = [NSURL URLWithString:@"http://www.gravatar.com/avatar/53789a67f8fffd8ede2ea118165ff962?s=32&d=identicon&r=PG"]; 
NSData *imageData = [NSData dataWithContentsOfURL:imageURL]; 
UIImage *cellImage = [UIImage imageWithData:imageData]; 

但同步使用这种方式将阻止你的UI获得的图像。你最好异步获取图像。发送请求并在获取图像后,使用请求委托方法更新您的UI。

+0

谢谢@sunkehappy,你给我的代码有效,但我不确定如何异步获取图像。我拥有所有的单元格数据,包括存储在JSON数组中的图像的URL。你给我的代码工作,但它有点慢,并导致tableview非常“粘性”。有任何想法吗?谢谢! – Brandon

+0

http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html。你见过这个项目吗?它使用'NSURLConnection',你可以使用它或其他库如ASIHTTPConnection或RestKit。 – sunkehappy

0

试试这个:

NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"give your url hrere."]]; 

UIImage *image = [UIImage imageWithData:imageData]; 

cell.imageView.image =image;