2012-12-02 57 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;