Сделать обход UIScrollView

Возможный дубликат:
UIScrollView. Любые мысли о реализации "бесконечной" прокрутки/масштабирования?

У меня есть UIScroll, у которого есть восемь или около того страниц. Моя цель состоит в том, чтобы они "зацикливались" так, чтобы, когда пользователь достигает последней страницы, первая страница будет следующей страницей (и наоборот), чтобы пользователь мог бесконечно прокручивать страницы. Каков наилучший способ достичь этого?

Я работаю над этим пример из Cocoa с любовью.

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

Ответы

Ответ 1

Теперь проблема сортируется. В основном, я создал дополнительные страницы до и после моих страниц, чтобы она выглядела так:

8 1 2 3 4 5 6 7 8 1

Затем в scrollViewDidEndDecelerating я делаю простой оператор if, который проверяет, находится ли я на первой или последней странице и соответствующим образом определяю scrollView.

- (void)scrollViewDidEndDecelerating:(UIScrollView *)newScrollView
{
    [self scrollViewDidEndScrollingAnimation:newScrollView];
    pageControl.currentPage = currentPage.pageIndex;

    if(currentPage.pageIndex==0){
        scrollView.contentOffset = CGPointMake(320*(pageControl.numberOfPages-2), 0);
        pageControl.currentPage = pageControl.numberOfPages-2;
    }else if(currentPage.pageIndex==pageControl.numberOfPages-1){
        scrollView.contentOffset = CGPointMake(320, 0);
        pageControl.currentPage = 1;
    }

}

Ответ 2

Для других, кто пытается решить эту проблему, я бы рекомендовал взглянуть на яблочное видео, которое включает в себя учебник для бесконечной прокрутки и обертывания: https://developer.apple.com/videos/wwdc/2011/

Наряду со своим примером кода: https://developer.apple.com/library/ios/#samplecode/StreetScroller/Introduction/Intro.html

В настоящее время я использую метод "8 1 2 3 4 5 6 7 8 1" и не пытаюсь реализовать метод, описанный в видео, но, похоже, он может предотвратить небольшой "отскок" в последней или первой странице, с которой вы можете столкнуться при быстрой прокрутке по методу 8 1 2... 1.