URLから画像を読み込んでから、さまざまなUIButtonの背景画像として割り当てたいと思います。ビューが表示されたときにこれを行う必要があります。
私の問題は、ロード時に画像をフェードインさせようとすると、すべての画像がロードされるまでアニメーションが開始されないことです。これは、アニメーションコードを読み取ったが、実行する前にプログラムが新しい画像の読み込みを開始したためだと思います。
画像を次々にフェードインさせるにはどうすればよいですか?
次のコードを使用して画像を取得し(downloadImageByPrice atURLを呼び出し)、アニメーションを実行します。
-(void) obtainImage:(int)i atURL:(NSString *)URLString{
UIImage *image = [self downloadImageByPrice:i atURL:URLString];
// Make images fade in when they have been found
[[_buttonArray objectAtIndex:i] setAlpha:0.0];
[[_buttonArray objectAtIndex:i] setImage:image forState:UIControlStateNormal];
[UIView beginAnimations:@"fadeIn" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.8];
[[_buttonArray objectAtIndex:i] setAlpha:1.0];
[UIView commitAnimations];
}
このメソッドは、すべての画像を次々にロードするために使用されます。次の画像の読み込みを開始する前に、各画像が表示されるまでループを待機させたいです。
-(void) loadAllImagesAtURL:(NSString *)URLString{
for(int i =0; i<[_buttonArray count];i++){
[self obtainImage:i atURL:URLString];
}
}
セレクター、またはcompletion ^メソッドを使用してみましたが、これらの概念についての理解はまだかなり低いです。
ありがとうございました