Оптимальный способ создания галереи миниатюр - PullRequest
1 голос
/ 03 января 2012

Я нахожусь в процессе создания приложения, которое показывает уменьшенное изображение объектов изображения. (приложение только для iPad) .

Объекты изображения показывают следующую информацию с каждым из них:

  1. Имя изображения

  2. Цена на фото

  3. Значок избранного

  4. Кнопка для выбора изображения (которое на самом деле является кнопкой, а фон кнопки - изображением). Изображение загружается с URL.

Я начал рисовать вот так:

  1. Создан пользовательский вид, который содержит изображение, кнопку, значок избранного и ценник.

  2. Когда загружено представление контейнера, я вычеркиваю все эти представления в цикле.

  3. Все виды отображаются в UIScrollView.

Это все отлично работает, когда вид изначально загружается в Портрет .

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

Способы, которые я думал, чтобы справиться с этим следующим образом:

  1. Когда устройство переключено, полностью сотрите вид и перезагрузите все.
  2. Когда представления загружены, добавьте их в массив хранения. Когда устройство поворачивается, циклически перемещайтесь по массиву и меняйте рамки каждого вида.
  3. В каждом представлении есть два свойства. Свойство, которое держит их рамку для портрета и пейзажа. Когда устройство вращается, вызовите reloadInputViews / ViewNeedsLayout / setNeedsLayout.

Мои опасения:

  1. Это будет очень медленно.

  2. Добавление всех этих объектов в массив затруднит использование памяти.

  3. Потеряю ли я объекты, если они не хранятся в массиве при вызове ViewNeedsLayout / setNeedsLayout / reloadInputViews.

-Как всегда, что вы за вашу помощь и ваше время очень ценится.

1 Ответ

1 голос
/ 03 января 2012

Я использовал KKGridView для этого в прошлом и нашел его удивительно гибким и отзывчивым.Он работает с той же механикой, что и UITableView, и очень эффективен.Я только что отредактировал методы рисования ячеек для своих собственных целей.

Ваши опасения полностью обоснованы - это будет медленно и может привести к ошибкам в условиях нехватки памяти, если представление не на экране.К счастью, KKGridView позаботится об этих проблемах для вас.

...