Как уже отмечалось, вы столкнулись с фундаментальной проблемой обработки изображений: конечная скорость ввода-вывода устройства.
Кстати, imagedNamed:
внутренне кэширует изображения, что, вероятно, объясняет, почему последующие нагрузки бывают быстрыми.
Если плитка не является вариантом (как рекомендовал @Krio), вы можете попробовать предварительно загрузить изображения в кеш на фоновом потоке до того, как ваш вид будет необходим. Например, если это представление обычно обращается из другого представления, вы можете начать серию вызовов imageNamed:
, завернутых в dispatch_async
или NSOperationQueue
, когда загружается более ранний вид. Это могло бы помочь только в определенных обстоятельствах:
-Вы знаете, что ваш образ почти всегда является следующим элементом пользовательского интерфейса, который требуется запросить.
-Вы знаете заранее, какие активы необходимо загрузить.
-Ваш набор изображений достаточно, что вы не собираетесь заполнить всю память, заставляя рамки выселить кэш просто наполненную
Обратите внимание, что это также вводит достаточное количество сложности для малых ваш дизайн приложения, поэтому лучше всего избегать, если это абсолютно необходимо.
Почему бы вам не ожидатьвкуть мимо 19 640x820 картинок, чтобы прослушать просмотр? Кроме того, меня беспокоит использование памяти всеми этими изображениями. Вы думали о ленивых изображениях только по мере того, как они нужны на экране? –