iOS页面控件滚动锁定

时间:2012-02-14 01:05:21

标签: ios uiscrollview uipagecontrol

我在其中一个视图中实现了页面控件和滚动视图。目前我有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];
}

1 个答案:

答案 0 :(得分:0)

我明白了。显然有一个反弹&#39;允许用户在超过边界后继续滚动的属性。关闭此窗口会将窗口锁定到位。