2011年6月13日月曜日

TableViewをスクロール中でも非同期画像を表示する方法

TwitterのTLのようにネットから画像をダウンロードしてセルに追加する場合
非同期通信(NSURLConnection initwithRequest)で画像データを取得する時、
「スクロール中は画像の取得ができない」という問題が生じました。

何故かNSURLConnectionでリクエストしても 
レスポンスが帰ってくるのはスクロールが止まった時です。
それをスクロール中でもやるための方法は以下のようにすればOK.


NSURLConnection *connection;

connection = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];


ポイントは
1,startImmediatelyをNOに
2,scheduleInRunLoopを設定して
3,スタート
これで、スクロール中でも画像をサーバーから受信し表示することが可能になります。 

0 件のコメント: