Как оптимизировать пролистывание 50+ изображений, которые загружаются - PullRequest
1 голос
/ 09 марта 2011

У меня есть приложение для iPad с более чем 50 полноэкранными изображениями (png), и я хочу иметь возможность переворачиваться назад и вперед между изображениями. Чтобы уменьшить размер приложения, я загружаю изображения по мере необходимости, используя NSURLConnection. Я также кеширую около 15 изображений. Проблема, с которой я сталкиваюсь, заключается в том, что, хотя у меня есть кеш, довольно легко пролистать кеш и изображение, которое еще не было загружено.

Мне интересно, что вы предлагаете, чтобы решить мою проблему. Должен ли я просто увеличить кэш или уменьшить размер изображений? Нужно ли ограничивать количество загружаемых картинок одновременно? Большое спасибо!

Так я начинаю загрузку каждого изображения

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:[NSURLRequest 
            requestWithURL:[NSURL URLWithString:theUrlString]] 
            delegate:self startImmediately:NO];

[conn scheduleInRunLoop:[NSRunLoop mainRunLoop]
            forMode:NSRunLoopCommonModes];

[conn start];

1 Ответ

1 голос
/ 09 марта 2011

Что касается пролистывания фотографий после их загрузки, вот несколько советов, которые можно попробовать.

  • Иметь версию фотографии с низким и высоким разрешением.
  • Всякий раз, когда у вас загружено одно изображение, сохраняйте версии старших соседей в высоком разрешении. Другими словами, загружайте, но не отображайте эти картинки.
  • Загрузка изображений с низким разрешением в память некоторого диапазона, окружающего отображаемое изображение. Таким образом, если отображается изображение 5, а ваш диапазон равен 5, загружайте изображения с меньшим значением от 0 до 10
  • Пока пользователь пролистывает, сначала визуализируйте низкое разрешение, а затем загрузите изображение с высоким разрешением.

В этих советах пользователь должен пролистать несколько снимков, чтобы найти нужную фотографию, а затем сделать паузу на выбранном снимке, а затем пролистать еще несколько.

...