2010-01-24 3 views
0

У меня есть uiscrollview, и я добавляю один за другим uiimageviews, но когда я добавляю более 40 объектов, у меня проблема с памятью, я думаю, и приложение падает ... что я должен делать? Я пытаюсь сделать приложение, как просмотрщик фотографий из apple! Помоги пожалуйста!Как добавить более 100 изображений в uiscrollview

я не хочу thumbnais я просто хочу, чтобы показать следующее изображение, когда пользователь Флик от одного к другому, но я должен разгружать предыдущее изображение и показать следующий

я удалить предыдущий как этот

UIImageView l; 

l=[[scroll subviews] objectAtIndex:0]; 
[l removeFromSuperview]; 
l=nil; 

, а затем я добавить следующую как этот

[scroll insertSubview:imageView atIndex:counter]; 

, но я не вижу черный фон, нет изображений

, пожалуйста, помогите!

ответ

1

Лучший способ сделать это - загрузить несколько изображений за раз в виде таблицы. В каждой ячейке таблицы поставьте три эскиза. Вам нужно создать пользовательскую ячейку. Таким образом, ячейки таблицы будут помещены в очередь и память будет повторно использована. Посмотрите проект Facebook Three20, я думаю, что они внедрили его так, поэтому у вас будет некоторый код для работы.

http://joehewitt.com/post/the-three20-project/

1

Задайте себе вопрос: действительно необходимо загрузить все 100 изображений в память? Почему бы просто не загружать несколько изображений за раз в фоновом режиме, в зависимости от того, на какое изображение прокручивается пользователь?

+0

Я не хочу загружать 100 изображений в память. Я хочу выгрузить предыдущее изображение, которое в настоящее время загружено, и добавить (загрузить) следующий. Удалите предыдущий из памяти и добавьте следующий ... – stefanosn

1

Не делайте этого.

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

Если вы хотите отображать 100 больших изображений, но только один из них отображается за один раз, у вас есть 1 или 2 изображения, которые загружают текущие и следующие изображения и оживляют их умным способом сделать его бесконечным поток. Вы все равно можете использовать scrollView, просто контролируете его положение и соответствующим образом размещаете изображения.

+0

i do not хочу thumbnais, я просто хочу показать следующее изображение, когда пользователь щелкнет от одного к другому – stefanosn

+0

Flyweight pattern – Nimrod

+0

Flywieght pattern действительно –

0

Существует ровно яблоко образец кода, которые делают то, что вы хотите. Ищите образец PageControl, он уже реализован. В основном ползунок получает контроллер изображения из массива контроллеров; среди прочего, когда скроллер переключается на предыдущее или следующее изображение, контроллеры добавляются и удаляются из этого массива динамически, чтобы поддерживать низкий уровень памяти. Посмотрите пример кода, это довольно просто. Надеюсь, это поможет.

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