Сделать обход 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.