-1

У меня есть scrollView, который показывает изображения, заданные по url. Теперь я хочу, чтобы видимое изображение и предыдущее и следующее изображение были предварительно загружены в scrollView для уменьшения использования памяти. Как это сделать?Удалить скрытые изображения из UIScrollView

+1

Что вы пробовали? + Может быть, вы можете использовать UICollectionView вместо «сырого» вида прокрутки, и поэтому получите функцию повторного использования из коробки – Vladimir

ответ

0

Если вы используете UITableView вместо UIScrollView, вы можете создать свой собственный тип UITableViewCell, который загружает 1 изображение в свой контент.

Преимущество в том, что в системную память загружаются только видимые UITableViewCells (те, которые отображаются на экране устройства), поэтому он не будет использовать слишком много ресурсов.

Here является одним из многих учебных пособий CustomCell, которые вы найдете в Интернете.

1

Когда я сделал то же самое, я создал UIScrollView размером 3 раза. Достаточно большой, чтобы удерживать 3 изображения, отображаемые в настоящее время, и следующие братья и сестры справа и слева.

Эти изображения предварительно загружены, если они еще не были загружены. Таким образом, у пользователя есть гладкий и отзывчивый вид. & чувствую.

Когда пользователь прокручивается до следующего, и он может прокручивать только один, то я повторно упорядочиваю представление. Допустим, что изображения 1, 2 и 3 находятся в режиме прокрутки, и 2 видно, поэтому 1, 2 и 3 (предварительно) загружены. Пользователь прокручивается вправо. Изображение 3 будет видно. Как только он станет полностью видимым, я снова установлю видимый прямоугольник вида прокрутки на середину. Теперь изображение 2 является самым левым, изображение 3 видно, а изображение 4 помещено как самое правое и предварительно загруженное.

Когда заканчивается конец списка изображений, что означает, когда отображается первый или последний, тогда я помещаю фиктивный вид слева или справа в большинстве случаев, который представляет собой простой текстовый вид, показывающий «не более изображений".

К сожалению, я не могу поделиться этим кодом.

+0

Да, у меня что-то вроде этого уже работает, моя проблема заключается в удалении изображений, которые не видны. Слишком плохо, что вы можете «Не разделяй какой-то код, потому что это действительно поможет мне – Daantjeeuh

+0

Нет, код не помог бы, потому что он« встроен »в довольно сложную бизнес-логику, и я сделал некоторые концептуальные ошибки там, поскольку это было моим первым настоящим приложением. Какую проблему вы удаляете? Я использовал какой-то кеш внутренней памяти приложения, где я сохранил их в словаре, и когда появляются предупреждения о памяти, я удаляю самую старую половину в этом словаре. Тем временем я узнал о лучших решениях для кэширования. Но какова ваша конкретная проблема, устраняющая их? –

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