2010-10-13 7 views
2

Мне нужно отобразить 20 x 15 сетку изображений на iPad. Каждое изображение составляет 50 пикселей x 50 пикселей.iPad: UIImage imageWithContentsOfFile проблемы с производительностью

Для этого я использую [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"name" ofType:@"png"]], но я сталкиваюсь с проблемами производительности. Приложение сильно отстает. Есть 14 различных типов изображений, все 50x50 в формате png.

Есть ли способ, который я мог бы использовать для повышения производительности?

Обновление: Я пробовал с помощью решения найдено по следующей ссылке; это помогло некоторым, но не полностью решило проблему. Надеюсь, это помогает другим. http://www.alexcurylo.com/blog/2009/01/13/imagenamed-is-evil/

+0

Использует ли «imageNamed:» изменение производительности вообще? –

+0

Замедляет его немного больше. –

+0

Вы рисуете эти изображения в drawRect? Или отображать их внутри изображений или CALayers? – hotpaw2

ответ

3

imageNamed будет кэшировать изображение, поэтому будет ускорен второй вариант использования и т. Д. Если это не поможет, вы можете предварительно загрузить изображения, если память не сильно пострадала, а затем просто замените их из NSArray или NSMutableArray, например.

+0

Вы можете даже предварительно загрузить их в отдельном потоке, если это необходимо. –

+0

Я загружаю массив изображений, а затем, когда я инициалирую объект типа UIView, я устанавливаю образ представлений в соответствующий индекс в массиве, который содержит изображение. –

+1

Предварительная загрузка в отдельную нить помогла чрезвычайно. –

Смежные вопросы