0

首先,我不知道如何搜索这个,这就是为什么我将它作为一个问题发布。对不起,如果它已经被问到了,我还没有找到它。

我想让 scrollView 看起来像 App Drawer,所以它有 3 个可能的偏移量(如屏幕)。

这是我尝试过的代码,但这仅在我拖动并且不拿起手指直到滚动结束时才有效,但如果我滑动则不会结束:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (scrollView.contentOffset.x >= 0 && scrollView.contentOffset.x <= 640)
{
    if (oldOffset == 0)
    {
        if (scrollView.contentOffset.x > 100 && scrollView.contentOffset.x < 420)
        {
            [scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
            oldOffset = 320;
        }
        else if (scrollView.contentOffset.x > 420)
        {
            [scrollView setContentOffset:CGPointMake(640, 0) animated:NO];
            oldOffset = 640;
        }
        else
        {
            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
        }
    }
    else if (oldOffset == 320)
    {
        if (scrollView.contentOffset.x < 220)
        {
            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
            oldOffset = 0;
        }
        else if (scrollView.contentOffset.x > 420)
        {
            [scrollView setContentOffset:CGPointMake(640, 0) animated:NO];
            oldOffset = 640;
        }
        else
        {
            [scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
        }
    }
    else {
        if (scrollView.contentOffset.x < 220) {
            [scrollView setContentOffset:CGPointMake(0, 0) animated:NO];
            oldOffset = 0;
        }
        else if (scrollView.contentOffset.x < 540) {
            [scrollView setContentOffset:CGPointMake(320, 0) animated:NO];
            oldOffset = 320;
        }
        else
        {
            [scrollView setContentOffset:CGPointMake(640, 0) animated:NO];
        }
    }
}

}

4

1 回答 1

0

UIScrollView的属性设置pagingEnabledYES。启用后,滚动视图将自动“捕捉”滚动到其大小的倍数(水平滚动的宽度,垂直滚动的高度)

苹果文档说:

分页启用

如果此属性的值为YES,则当用户滚动时,滚动视图会在滚动视图边界的倍数处停止。默认值为NO

于 2013-09-04T09:34:33.493 回答