0

これは私のNSTimerコードです

   myTimer = [NSTimer scheduledTimerWithTimeInterval: 0.1 target: self
                                             selector: @selector(callRightRotation:) userInfo: nil repeats: YES];

-(void) callRightRotation:(NSTimer*)myTimer 
  {
       ImageView.tag =[ImageView tag]+1;

           if ([ImageView tag]==50) 
                ImageView.tag=1;

     [ImageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"kisok01%i.png",[ImageView tag]]]];

      if ([ImageView tag]==1 || [ImageView tag]==50 )
       {
             [myTimer invalidate];
              myTimer= nil;


        }

   }

ここでは、 ipadでの画像の読み込みは完全に機能していますが、ほとんど機能していません......ここでは、「。jpg」形式の画像を使用しています。1つの画像は最小300kbです...

ここに私の質問があります

     1. Is it possible loading very fast and smoothly ?
     2. if its not possible is there any alternative solution?
4

1 に答える 1

0

これには、timmer の代わりに ASIHTTPRequest を使用できるため、画像はバックグラウンドでスムーズに読み込まれます。同じビューの他のコントロールを操作できます。

「ASIHTTPRequest.h」をインポート

//メソッド内

[self performSelectorInBackground:@selector(DownLoadImageInBackground:) withObject:imgUrlArr];

-(void) DownLoadImageInBackground:(NSArray *)imgUrlArr1

{

NSURL * url = [Image URL];

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];

}

-(void)requestFailed:(ASIHTTPRequest *)リクエスト

{

NSLog(@"URL Fail : %@",request.url);

NSError *error = [request error];

   // you can give here alert too..

}

-(void)requestFinished:(ASIHTTPRequest *)リクエスト

{

NSData *responseData = [request responseData];
UIImage *imgInBackground = [[UIImage alloc]
                     initWithData:responseData];
[imageView setImage: imgInBackground];

}

于 2012-04-13T04:55:21.723 に答える