0

我试图在我的 UIScrollView 的一个部分(一张照片)上隐藏内容,并使用 acontentOffset来访问该部分,如下所示。如果内容偏移量在 0 到 320(我的图像大小)之间,我将在屏幕上隐藏各种元素。但是,当用户滑动到下一张照片(即内容偏移量大于 320)时,我想再次显示内容。我的代码的第一部分效果很好,但是我不确定当用户滑动时是否检测到内容偏移量大于 320。我对 ScrollViews 相当陌生,不确定它们是否不断更新内容偏移量,或者它们是否检测到会导致更新的用户滑动。在用户滚动到我的第一张图片之后,我有什么想法可以让隐藏的元素等于 NO 吗?

  if (scroller.contentOffset.x >=0<=320)
                {
                    preview.hidden = YES;
                    share.hidden = YES;
                    barView.hidden = YES;
                    saveButton.hidden = YES;
                    shaddows.hidden = YES;

                }
                else if (scroller.contentOffset.x >320)
                {
                   //This part does not work
                    preview.hidden = NO;
                    share.hidden = NO;
                    barView.hidden = YES;
                    saveButton.hidden = YES;
                    shaddows.hidden = YES;
                }

这是我的滚动代码的其余部分:

int PageCount = 2;

        NSMutableArray *myArray =[[NSMutableArray alloc]initWithObjects:@"12-4.png",@"13-4.png",nil];

        scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
        scroller.scrollEnabled=YES;
        scroller.backgroundColor = [UIColor clearColor];
        scroller.pagingEnabled = YES;
        [self.view addSubview:scroller];
        width=scroller.frame.size.width;
        xPos=0;
        for (int i=0; i<PageCount; i++)
        {
            ImgView = [[UIImageView alloc]initWithFrame:CGRectMake(xPos, 0, scroller.frame.size.width, scroller.frame.size.height)];
            [ImgView setImage:[UIImage imageNamed:[myArray objectAtIndex:i]]];
            [scroller addSubview:ImgView];
            scroller.contentSize = CGSizeMake(width, 0);
            width +=scroller.frame.size.width;
            xPos  +=scroller.frame.size.width;
        }

谢谢!

4

1 回答 1

0

更改此行

  if (scroller.contentOffset.x >=0<=320)

  if (scroller.contentOffset.x <= 320)

因为原版不会做你认为它会做的事情。

此代码应该在scrollViewDidScroll:委托方法中(确保您的控制器是滚动视图委托)。

添加一些日志语句,以便在用户滚动内容偏移它的内容以及代码认为的页面时打印出来。

于 2013-09-03T07:12:13.820 回答