Как добавить более 100 изображений в Uiscrollview - PullRequest
0 голосов
/ 24 января 2010

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

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

iудалите предыдущее, как это

UIImageView l;

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

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

[scroll insertSubview:imageView atIndex:counter];

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

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

Ответы [ 4 ]

1 голос
/ 24 января 2010

Не делай так.

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

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

1 голос
/ 24 января 2010

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

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

1 голос
/ 24 января 2010

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

0 голосов
/ 25 января 2010

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

...