2012-01-17 13 views
0

アプリを作成していて、ウェブサイトURLからアルバムアートワークを取得します。アプリがロードされた後に画像が読み込まれるUITableView

これまでに書いたのは、アルバムアートワークのURLを含むファイルが読み込まれることです。次に、2次元のNSMutableArrayがファイルからのデータとファイルからの個々のURLから初期化されたUIImageで構築され、配列に格納されます。

この配列は、UITableViewにロードされます。

これは素晴らしいことです...アプリをロードするのに10秒かかるのを除いて(笑)。

UITableViewがロードされたら、画像をロードする方法はありますか?

ここに私のcellForRowAtIndexPathメソッドがあります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"]; 

if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"identifier"]autorelease]; 
} 

((UILabel *)[cell viewWithTag:artistTag]).text = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:artistIndex]; 

((UILabel *)[cell viewWithTag:albumTag]).text = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:albumIndex]; 

((UILabel *)[cell viewWithTag:dateTag]).text = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:dateIndex]; 

((UIImageView *)[cell viewWithTag:imageTag]).image = [[musicList.list objectAtIndex:indexPath.row] objectAtIndex:imageIndex]; 

return cell; 

}

どうもありがとう!

答えて

0

主な原因は、イメージの取得がメインスレッドをブロックしているためです。 これを使用して、イメージを非同期に管理します。

http://www.markj.net/hjcache-iphone-image-cache/

それはあなたが本当に何をしたいのか、それを

0

を使用する方法のサンプルは、バックグラウンドスレッドで画像を読み込むで含まれています。関連するコードの完全なスイートの

SDWebImage

それとも非同期ビューコードのチェックアウト、チェックアウトthis link

0

AFNetworkingは(非同期ロードのために非常に良いですし、でも、画像のロードを処理するための機能が付属しています例えば、アルバムアートワークの)。 github repoにはサンプルコードが含まれています。

https://github.com/AFNetworking/AFNetworking

関連する問題