Блокировка прокрутки управления страницей iOS

У меня есть элемент управления страницей и прокрутка, реализованная в одном из моих представлений. На данный момент у меня есть 2 страницы и размер содержимого прокрутки, установленный на ширину 496 (каждая страница - 248). Все работает хорошо, так как обновляется и прокручивается правильно, однако я замечаю, что могу продолжать прокрутку, даже если слева или справа от меня нет страницы.

Есть ли способ отключить прокрутку влево, если я на первой странице, или отключить прокрутку вправо, если я на последней странице? Пожалуйста, посмотрите мои фрагменты кода ниже, чтобы увидеть, что я делаю.

// Initialize the scroll view
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * 2, scrollView.frame.size.height);
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;

// Functions called for the page control/scrollview
- (void)loadScrollViewWithPage:(int)page window:(UIView *)pageView
{
    if(page < 0 || page >= pageControl.numberOfPages)
    {
        return;
    }

    // Add our view
    CGRect frame = scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    [pageView setFrame:frame];
    [scrollView addSubview:pageView];
}

- (void)scrollViewDidScroll:(UIScrollView *)sender
{
    // Update our page when we have more than 50% of the adjacent page available
    CGFloat pageWidth = scrollView.frame.size.width;
    int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;

    if(page < 0 || page >= pageControl.numberOfPages)
    {
        return;
    }

    pageControl.currentPage = page;

    [pageControl setNeedsDisplay];
}

person Seb    schedule 14.02.2012    source источник


Ответы (1)


Я понял. По-видимому, было свойство «отскоков», которое позволяет пользователю продолжать прокрутку даже после того, как он вышел за границы. Отключение этого параметра блокирует окно на месте.

person Seb    schedule 14.02.2012