Вопрос памяти: фотогалерея с использованием UIImageView, NSArray & SwipeGesture vs UIScrollview - PullRequest
1 голос
/ 21 февраля 2011

Я разрабатываю приложение для iphone и то же самое для iPad - ядром его является фотогалерея. Я хочу, чтобы можно было отображать до 80 полноэкранных изображений один за другим с функцией слайда влево или вправо.

Я знаю, что я могу сделать это, используя UIImageView с NSArray и SwipeGesture, но это также может быть достигнуто с помощью UIScrollview.

Быстрый вопрос - какой способ использует наименьшее количество памяти или эффективно освобождает изображения из памяти после их просмотра?

Любая помощь приветствуется.

Кроме того, существует ли пошаговое руководство на YouTube или в Интернете, в котором показано, как сделать UIScrollView в этом контексте?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2011

С точки зрения использования наименьшего объема памяти, в любом случае вам придется использовать метод подкачки, чтобы у вас было только 2-3 изображения в памяти одновременно. Я обнаружил, что использование гораздо большего, чем это, быстро достигнет предела устройства.

Я бы использовал UIScrollView, потому что он будет более естественным. Если вы используете SwipeGesture, то пользователь не сможет немного переместить текущее изображение влево / вправо и получить приятный эффект резинкой. (Ну, вы могли бы воспроизвести его с UIGestureRecognizer, но это заняло бы намного больше работы). Потратьте некоторое время со встроенным приложением Photos, чтобы понять, что я имею в виду. Потяните изображение влево / вправо, не отпуская, и вы увидите изображение рядом с ним.

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

Учебное пособие для начала работы см. Здесь: http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html. Этого должно быть достаточно, чтобы начать работу.

0 голосов
/ 21 февраля 2011

Эффективность зависит от того, как вы обрабатываете ваши изображения.По сравнению с этим, эффективность замены UIImageViews на основе жеста смахивания по сравнению с постраничным UIScrollView, содержащим UIImageViews, является чрезвычайно малой.На практике это может означать загрузку одного или двух изображений по обе стороны от отображаемого в настоящий момент UIImage, когда вы решили, что это уместно, и освобождение более удаленных, которые могли быть загружены ранее.Если вы хотите пойти по маршруту жестов смахивания, это время будет, когда вы обнаружите жест смахивания.Если вы выберете постраничный маршрут UIScrollView, один из методов UIScrollViewDelegate будет отличным местом.

...