2013-07-14 2 views
0

У меня есть горизонтальный прокрутки UIScrollView, который должен отображать изображения разных размеров рядом друг с другом. Все изображения должны быть изменены до высоты прокрутки, что оставляет нас с переменной шириной. Проблема здесь в том, что нет пейджинга, но изображения все равно должны быть лениво загружены. Чтобы ухудшить ситуацию, в то время, когда отображается представление, у меня есть только URL-адреса для изображений, поэтому я понятия не имею о ширине и высоте изображений.Lazy загрузки изображений различных размеров в UIScrollView без подкачки

Моей идеей было бы иметь вид контейнера фиксированного размера в scrollview для каждого URL-адреса. Затем пусть контейнер просмотрит изображение и скажет прокрутку о размере изображения через делегат. Затем scrollview может изменить размер представления контейнера и соответствующим образом передать другие представления. (Но разве это не так, что вы не можете это сделать , а прокрутка?)

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

+1

Это похоже на идеальный вариант использования для коллекции. Почему бы не использовать один из них? –

ответ

0

Простейшим способом было бы загрузить небольшой файл JSON (или другой формат) при запуске с размером изображений в нем. Тогда вы будете знать все размеры заранее.

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

0

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

Пожалуйста, скажите мне, если я неправильно понял.

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