Как программно установить текущую страницу для UIPageControl? - PullRequest
6 голосов
/ 24 марта 2010

У меня есть 3 "страницы" (страница 0, страница 1, страница 2) в UIScrollView, к которым привязываются касанием пальца. Там тоже есть UIPageControl. UIScrollView начинает с представления страницы 0. Что я хочу сделать, так это иногда представлять страницу 3 ПЕРВАЯ. Как я могу сделать это программно.

Простая установка currentPage (из UIPageControl) на номер страницы, кстати, ничего не делает.

1 Ответ

23 голосов
/ 24 марта 2010

(из примера PageControl)

Чтобы перейти непосредственно к определенному разделу scrollView, используйте

CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[scrollView scrollRectToVisible:frame animated:YES];

Я только что реализовал то же самое, например, scrollview и page control, и использовал

pageControl.currentPage = {pageNumber};

, который работал отлично, вы уверены, что выходная страница pageControl правильно установлена ​​в Интерфейсном Разработчике (если вы его используете).

Если проблема в том, что не работает scrollView, а не pageControl. Затем убедитесь, что размер содержимого scrollView установлен правильно.

    scrollView.contentSize = CGSizeMake(320*numberOfPages, scrollView.frame.size.height);

К этому просмотру прокрутки вы затем добавляете контент в каждый раздел

page1ViewController.view.frame = CGRectMake(0, 0, 320, 200);
[scrollView addSubview:page1ViewController.view];

Следующая страница перемещается на 1 ширину экрана

page2ViewController.view.frame = CGRectMake(320, 0, 320, 200);
[scrollView addSubview:page2ViewController.view];
...