Предварительная загрузка большого изображения - PullRequest
1 голос
/ 27 февраля 2012

У меня есть изображение с размерами 5534 × 3803 и размером 2,4 Мб.Ссылки на UIView отмечают, что:

"В iOS 3.0 и более поздних версиях представления больше не ограничены этим максимальным размером, но все еще ограничены объемом используемой ими памяти."

Когда изображение загружается, оно отстает на полсекунды, а затем вставляется. Изображение помещается в UIImageView с разрешением 1024x704, но может быть увеличено в 4 раза по сравнению с размером для целей моего приложения.

Можете ли вы предварительно загрузить изображение в AppDelegate?Или есть другой способ обойти такое большое изображение?

Спасибо

РЕДАКТИРОВАТЬ: масштабирование выполняется с помощью UIPinchGestureRecognizer и масштабируется и выполняется (масштаб x4 - x1) на основецентральная точка изображения.При увеличении изображения панорамирование отсутствует.

1 Ответ

2 голосов
/ 27 февраля 2012

Лично я бы попытался написать систему на основе плиток (например, Google Maps), которая нарезает ваше большое изображение на сетку маленьких изображений, чтобы избежать загрузки этого гигантского изображения сразу в ОЗУ.Я на самом деле не знаю, как ваши пользователи взаимодействуют с этим изображением, или изображения изменяются или запекаются в вашем проекте, но я предполагаю, что вы можете позволить пользователям прокручивать их, поскольку это изображение больше любого экрана iOS.При использовании системы на основе плиток вы загружаете только те изображения, которые отображаются на экране. CATiledLayer - это класс Apple для таких вещей.Это, вероятно, то, что вы хотите посмотреть.

См. этот вопрос StackOverflow для некоторых различных подходов.В принятом ответе используется код из образца Apple PhotoScroller , который может работать в соответствии с вашими потребностями и использует CATiledLayer.

Этот ScrollViewSuite код Apple также может появиться (проверить код плитки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...