2010-07-31 10 views
0

В моем приложении я использую множество изображений на основе интерфейса. Проблема заключается в том, что он использует большие объемы памяти, потому что построитель интерфейсов кэширует его так же, как «imageNamed», поэтому я начал удалять изображение из imageViews в построителе интерфейса и вместо этого добавлять их, как только представление начинает использовать «imageWithContentsOfFile». Через несколько часов я сделал небольшой прогресс, потому что у меня буквально сотни изображений. Мне просто интересно, есть ли более простой способ сделать это?Проблемы с изображениями на iPhone

ответ

1

Да, не делайте этого. UIImage и весь бизнес xib довольно сильно задерживают загрузку до тех пор, пока не понадобятся вещи, а также, если это возможно и нужно, отбросить кешированные изображения. Вы даже можете увидеть, как это происходит в Инструментах. Это помогает разделить ваш дизайн на несколько xib, поэтому они могут быть загружены по мере необходимости.

Что вы можете, однако, чтобы убедиться, что вы не масштабируете изображения, а показываете их 1: 1, и что вы сохраняете их в наименьшем приемлемом качестве. Для фотографий сделайте JPEG. Для других изображений возьмите PNG.

+0

Как ни странно, похоже, что это не так, по крайней мере, не очень хорошо. В моем методе dealloc я освобождаю все объекты, определенные в заголовке, но объем памяти остается более или менее одинаковым из-за количества изображений, с которыми он имел дело. Это происходит только на iOS 4, если я запускаю его на iOS 3, тогда это нормально. – Jeff

+0

Но это сбой при низких условиях памяти? – mvds

+0

Да, я также контролировал использование памяти в инструментах. – Jeff

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