2010-11-22 14 views
0

UIImageViewの画像を動的に高速に更新できるサンプルがありますか?これらのイメージは、NSThreadのIP接続で受信されます。しかし、imageView.image = newImageRecdを実行しても更新されません。動的にuiimagesを更新する

EDIT:すべてのデータが

は、任意のヘルプ/ポインタを感謝メインスレッドでRECDです。

答えて

0

メインのスレッドでUIの更新を行う必要があります。あなたは別のスレッド、使用上の接続を実行している場合:

updateImageView:は、画像ビューの画像プロパティを設定するために使用される方法である
[self performSelectorOnMainThread:@selector(updateImageView:) withObject:newImageRecd waitUntilDone:FALSE]; 

:iOSの4のために

-(void)updateImageView:(UIImage *)image 
{ 
    [self.imageView setImage:image]; 
} 
+0

いいえ動作しません。すべてのデータは、メインスレッドで記録されます。 –

+0

あなたの質問は「NSThreadのIP接続で受け取った」と述べています。だから、それはどういう意味ですか? –

+0

接続はIBActionで確立され、セレクタはメインスレッド上のデータを受け取るために呼び出されます。 –

1

以降、あなたが使用することができますGrand Central Dispatch(GCD)を使用して、バックグラウンドスレッドにイメージをロードします。ここでは、完全にこのプロセスを説明するリンクです:

http://blog.slaunchaman.com/2011/02/28/cocoa-touch-tutorial-using-grand-central-dispatch-for-asynchronous-table-view-cells/

上記のチュートリアルでは、このコードを提供します。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 

dispatch_async(queue, ^{ 
    UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 

    dispatch_sync(dispatch_get_main_queue(), ^{ 
     [[cell imageView] setImage:image]; 
     [cell setNeedsLayout]; 
    }); 
}); 

私は、リモートサーバーからイメージをロードするために、この自分自身を使用してきた、それが働いていますすばらしいです。

関連する問題