Простое управление страницами - PullRequest
0 голосов
/ 08 октября 2011

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

Все учебники, на которые я смотрел, были слишком сложными.

- (void)viewDidLoad {

    [super viewDidLoad];

    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height);
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;
    scrollView.scrollsToTop = NO;
    scrollView.delegate = self;

    CGRect pageFrame = CGRectMake(0, 0, scrollView.bounds.size.width, scrollView.bounds.size.height);
    scrollView.contentSize = CGSizeMake(pageFrame.size.width * 2, pageFrame.size.height);
    scrollView.pagingEnabled = YES;

    view1.frame = pageFrame;
    [scrollView addSubview:view1];


    pageFrame.origin.x += pageFrame.size.width;
    view2.frame = pageFrame;
    [scrollView addSubview:view2];
}

- (IBAction)changePage:(id)sender {

}

Ответы [ 2 ]

1 голос
/ 08 октября 2011

Когда пользователь касается элемента управления страницы, чтобы перейти на следующую или предыдущую страницу, элемент управления отправляет событие UIControlEventValueChanged для обработки делегатом.Затем делегат может оценить свойство currentPage, чтобы определить страницу для отображения.Элемент управления страницы перемещается только на одну страницу в любом направлении.

Установите делегата элемента управления страницы для действия ValueChanged методом changePage вашего контроллера.

- (IBAction)changePage:(id)sender {
   UIPageControl *pageControl = (UIPageControl *)sender;
   NSInteger currentPage = pageControl.currentPage;
   CGPoint offset = CGPointMake(currentPage * scrollView.frame.size.width, 0);
   [scrollView setContentOffset:offset animated:YES];
}
0 голосов
/ 08 октября 2011

Установите int в качестве свойства tag ваших UIButton s, чтобы отслеживать, какое из них было нажато.

-(IBAction)changePage:(id)sender {
   UIButton *button = (UIButton *) sender;
   CGPoint offset = view1.frame.origin;
   if (button.tag == kConstantForSecondPage) {
      offset = view2.frame.origin;
   }
   [scrollView setContentOffset:offset animated:YES];
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...