我在應用程序中有一個HUD面板,我希望能夠在顯示下一個圖像之前拍攝一組圖像並在面板上顯示每個圖像幾秒鐘。我對Cocoa很陌生,並且在實現時遇到了麻煩,所以有些指針會受到歡迎。下面是我目前想:可可圖片庫窗口
[newShots enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL *stop)
{
//get url
NSURL *imageUrl = [[NSURL alloc] initWithString:[obj objectForKey:@"image_url"]];;
//get image from url
NSImage *image = [[NSImage alloc] initWithContentsOfURL:imageUrl];
//set it to shot panel
[shotPanelImageView setImage:image];
//clean up
[imageUrl release];
[image release];
//set needs refresh
[shotPanelImageView setNeedsDisplay:YES];
//sleep a few before moving to next
[NSThread sleepForTimeInterval:3.0];
}];
正如你看到的,我只是循環的每個圖像的信息,通過URL抓住它,將其設置爲視圖,然後調用幾秒鐘線程睡眠繼續前進。問題是視圖在分配時不會與新圖像一起重繪。我認爲setNeedsDisplay:YES會強制重繪,但只會顯示集合中的第一個圖像。我已經放入了NSLog()並進行了調試,我確信枚舉工作正常,因爲我可以看到應該設置的新圖像信息。
有什麼我失蹤或是這是一個完全錯誤的方式去解決這個問題?
感謝,
克雷格