У меня есть код, который непрерывно генерирует фреймы UIImage для анимации. В настоящее время я использую изменяемый массив для сохранения этих объектов изображения, которые можно анимировать с помощью методов анимации UIImageView. Примерно так:
NSMutableArray *myFrames...;
while ( number of frames required ) {
create UIImage frame_xx;
[myFrames addObject:frame_xx];
}
myUImageView.animationImages = myFrames;
myUImageView.animationDuration = time_length_for_animation;
[myUImageView startAnimating];
Приведенный выше код работает нормально, однако моя проблема заключается в том, что, поскольку моя анимация становится длиннее нескольких сотен кадров, я начинаю получать предупреждения о памяти, и в конце концов программа вылетает.
В идеале я хотел бы немедленно отобразить каждый кадр, а не генерировать несколько кадров для анимации. Анимация может быть немного медленнее, но я не буду ограничиваться памятью. Как только отображается frame_xx, я больше не забочусь об этом кадре и хочу отобразить следующий кадр.
Я пытался использовать следующее, и они не работают:
[myUImageView setImage:frame_xx] // This only displays the last frame generated in the loop
Я также попытался создать новую тему:
[NSThread detachNewThreadSelector: @selector(displayImage) toTarget:myUImageView withObject:frame_xx]; // again this only shows the last frame generated in the loop
Так что я ищу помощь ... как вы сразу отображаете рамку изображения в UIImageView, вроде как "сбрасывать" сразу после [myUImageView setImage: frame_xxx]
Любая помощь по этому вопросу будет принята с благодарностью ..
KAS