我想從一個URL加載圖像,然後將它們分配爲不同的UIButtons的背景圖像。出現視圖時,我需要這樣做。試圖褪色從XCode異步加載的圖像
我的問題是,當我嘗試使圖像在加載時淡入時,直到加載所有圖像纔開始動畫。我認爲這是因爲動畫代碼被讀取,但是在它有時間執行之前,程序開始加載新的圖像。
如何讓圖像一個接一個地褪色?
以下代碼用於獲取圖像(調用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];
}
}
我試過使用選擇器或完成^方法沒有運氣,但我對這些概念的理解仍然很低。
謝謝
你應該看看NSThread或NSOperation ... –