UIScrollView извлекает данные с сервера по одной странице за раз - PullRequest
0 голосов
/ 02 апреля 2011

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

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

Есть предложения, как это сделать?

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

Вы должны использовать протокодированный метод - (void)scrollViewDidScroll:(UIScrollView *)scrollView;

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
   if (scrollView.contentOffset.y == _currentOffsetHeight)
   {
      // Do what you want
   }
}
0 голосов
/ 02 апреля 2011

См .: Библиотека разработчика iOS: пример кода PageControl

Когда вы обнаруживаете прокрутки с помощью методов делегата, вы можете начать загрузку данных для следующих представлений в память.Также не забудьте сохранить ранее просмотренный вид в памяти.Например, (если на экране 5-й вид):

0: не в памяти 1: не в памяти 2: не в памяти 3: не в памяти 4: в памяти 5: в памяти 6:в памяти 7: не в памяти 8: не в памяти

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

Удачи!

...