2009-08-06 19 views
0
imgBiteSpot.clipsToBounds=YES; 
    NSData *imageData = [[[NSData alloc]init]autorelease]; 
    imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ObjBitSpot.StrImagePath]]; 
    if(imageData==0) 
    { 
     imgBiteSpot.image=[UIImage imageNamed:@"img-not-found.gif"]; 
    } 
    else { 
     UIImage *imgs = [[UIImage alloc] initWithData:imageData]; 
     UIGraphicsBeginImageContext(CGSizeMake(88,88)); 
     [imgs drawInRect:CGRectMake(0.0, 0.0, 88.0, 88.0)]; 
     UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     imgBiteSpot.image=newImage; 
     [imgs release]; 
    } 

iPhoneの画像読み込みの問題? - webserviceから


imgBiteSpotに画像をロードしました。 イメージはWebサービスからロードされます。問題は、時間がかかりすぎることです(35秒〜1分)。

image - > code/loadを削除した場合、反応時間はわずか0.2秒です。

画像読み込み処理の時間を短縮する方法を教えてください。

ご協力いただきありがとうございます。

答えて

3

NSDataのメソッドdataWithContentsOfURL:を使用しています。このメソッドは、サーバから同期的にデータをロードし、画像が受信されるまでスレッド上でブロックします。

代わりに何をすべきかは、UIImageに空白または「読み込み」イメージをロードし、NSURLConnectionを使用してイメージを非同期にダウンロードし、完了したら表示することです。 NSURLConnectionの参照とURL Loading Systemのドキュメントを参照してください。

関連する問題