3

У меня есть приложение ipad (> 30 просмотров/страниц), каждый вид имеет уникальный фон.объектив-с память дружественный способ для фонового изображения

проблема: Что лучший способ установить фон (память дружественной)

есть лучший способ, чем добавление: UIImageView «backgroundView» как подвид?

версия1:

[[UIImage alloc] initWithData:imageData]; 

, который представляется проблематичным с переключателем сетчатки

version2:

self.layer.contents = (id)image.CGImage; 

версии 3:

UIImage* image = [UIImage imageWithContentsOfFile:fileLocation]; 

версия 2, похоже, хорошо. может быть, кто-нибудь сказать мне, Что лучший подход, и почему;)

спасибо Алекс

ответ

1

CGImage проблематично с сетчаткой ... Version3. лучше всего подходит для памяти!

0

В версии 2 вы создаете новый объект изображения, который вы должны выпустить вручную, если вы не используете ARC. Версия 3 использует автореализованный объект.

Обе версии одинаковы по соображениям безопасности. Я бы предпочел версию 3, потому что вам не нужно ничего делать, чтобы освободить память.

Вы также можете использовать [UIImage imageNamed: @ "image-name.png"], который также генерирует объект с автореализацией.

Если вы хотите, чтобы он был максимально удобным для обмена данными, вы должны рассмотреть возможность использования изображений PVR, поскольку они поддерживаются графическим оборудованием.

Бест,

Flo

+0

привет, спасибо за быстрый ответ. , но imagenamend будет потреблять много памяти/ , поэтому мне нужно что-то вроде [self addSbview: UIIMAGEVIEW], а? причина, я бы не сделал это в версии 2? –

+0

Почему imageNamed слишком занимает память? Я не мог думать о причине, почему этот конструктор создаст более большой блок памяти, чем другой. Возможно, я не правильно задаю ваш вопрос, но в любом случае вам придется загрузить изображение и назначить его либо в виде изображения, либо в слое CoreAnimation. Я не думаю, что использование UIImageView создает большую часть накладных расходов. – guitarflow

+0

, потому что изображение кэшируется приложением. просто Google "imagenamed - утечка памяти" хорошо - на самом деле это создает много накладных расходов на больших приложениях. –