我试图仅在我的UIScrollView的一个部分(一张照片)上隐藏内容,并使用contentOffset
访问该部分,如下所示。如果内容偏移量介于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;
}
谢谢!
答案 0 :(得分:0)
更改此行
if (scroller.contentOffset.x >=0<=320)
要
if (scroller.contentOffset.x <= 320)
因为原作不符合你的想法。
此代码应位于scrollViewDidScroll:
委托方法中(确保您的控制器是滚动视图委托)。
添加一些日志语句,以便在用户滚动内容偏移它以及代码认为它是什么页面时打印出来。