2011-11-15 6 views
1
NSURL * imageURL = [NSURL URLWithString:imageurldata]; 

NSData * imageData = [NSData dataWithContentsOfURL:imageURL]; 

image1 = [UIImage imageWithData:imageData]; 

[image1 retain]; 

私は上記のコードをiPhoneにアップロードするためのコードを書いています。私はこの画像を表示していますが、画像はそれまで見える時間がかかります画面は空白です。私たちはURLからイメージを取り出し、オブジェクトに格納しています。同時に画像と画像を表示するものはありますか?私たちはもっと速くiPhoneで画像をアップロードすることができます

+0

はあなたがイメージをダウンロードの代わりに、もしかして.... TileImageViewクラスを必要とし、(それが非同期にダウンロードしたデータを処理していないUIImageView)を次のようにそれを使用します画像をアップロードしますか? – rckoenes

答えて

1

限り私の知識として、それはserver.thereからデータをダウンロードするにはしばらく時間がかかります時間遅延をカバーするための一つの方法である画像データに

+0

この問題を解決するためのUIActivityIndi​​catorViewの例を教えてください。 –

+0

UIView.inビューにUIActivityIndi​​catorを追加すると、それを隠すことができませんでした。画像をダウンロードしながらインジケーターを表示します。ダウンロードの完了後、非表示にします。 – Tendulkar

0

をダウンロード中にUIActivityIndi​​catorViewを表示しているあなたは、初期化することもできますユーザーがビューを必要とする時間までに負荷が既に発生している可能性があるため、実際に必要になる前に表示する必要があります。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 
    dispatch_async(queue, ^{ 
     NSLog(@"Screen %@ - pauseBannerFileImage download starts", self.name);   
     UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:newUrlForImage]]]; 
     dispatch_sync(dispatch_get_main_queue(), ^{ 
      NSLog(@"!-Screen %@-!pauseBannerFileImage downloaded", self.name); 
      self.imageView.image = image; 
     }); 
    }); 
2

は、この非同期アプローチを試してみてください。

あなただけ

TileImageView *tileImageView = [[TileImageView alloc]initWithFrame:<myFrameAsPerMyNeeds>]; 
[tileImageView setTag:<this is the identifier I use for recognizing the image>]; 
[myImageScrollView addSubView:tileImageView]; 
[tileImageView startImageDownloading:imageurldata]; 
[tileImageView release]; 

おかげで、

関連する問題