Боюсь, это злой код:
CGRect iRect = CGRectMake(0.0f, 0.0f, 320.0f, 400.0f);
UIImageView *imgView = [[UIImageView alloc] initWithFrame:iRect];
imgView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"b0001.png"],
[UIImage imageNamed:@"b0002.png"],
// 150 more
[UIImage imageNamed:@"b0152.png"],
nil];
Я немного помню, что imageNamed: это зло. Если я делаю это таким образом, и у меня есть для предоставления объектов UIImage, то эти объекты UIImage немедленно загружают эти файлы изображений в память, верно? И, кроме того, все эти 152 объемных объекта UIImage занимают большой перерыв в памяти, потому что они автоматически высвобождаются, не так ли?
Итак, в заключение, использование этой техники - отстой. Является ли? Я не знаю. На моем старом iPod touch первого поколения это, кажется, работает без задержки на 25 кадрах в секунду. Очень гладко и приятно. Единственное, чего я боюсь, так это того, что некоторые другие устройства могут думать об этом иначе. Хотя у меня есть самое слабое программируемое касание iPod.
В любом случае, кто-нибудь видит там какие-либо возможности улучшения? Или я не должен использовать это и использовать setImage: из UIImageView в своем собственном алгоритме, который загружал бы и устанавливал эти изображения с отложенными селекторами, используя эту коренастую вещь imageWithContentsOfFile (может быть названа по-другому), без автоматического выпуска? Может быть, какой-нибудь умник написал небольшую библиотеку для высокопроизводительных видеофильмов с большим пальцем, которые состоят из последовательностей изображений?
(нет, видео на iphone недоступно; для этого Apple Framework просто поддерживает полноэкранный режим, и я не знаю ничего другого, что могло бы это сделать)