更新UIScroller偏移量

时间:2013-09-03 05:45:58

标签: ios objective-c uiscrollview

您好我第一次能够看到UIScrollView偏移量,但我希望在用户从左向右滚动时不断更新并检查偏移量。

这就是我所拥有的。

我的UIScrollView

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;
}

然后是偏移量

if (scroller.contentOffset.x >= 0 && scroller.contentOffset.x <= 320)
{
     NSLog(@"Offset %f", scroller.contentOffset.x);
}

returns 0。我想不断更新并检查偏移量。

我尝试了[scroller needsDisplay][scroller needsLayout]

任何帮助都会非常感激。
谢谢。

1 个答案:

答案 0 :(得分:0)

您需要学习C:

的基础知识
 if (scroller.contentOffset.x >= 0 && scroller.contentOffset.x <= 320)

这假设您要查看x偏移量是否介于0和320之间(包括0和320)。

要在滚动滚动视图时检查偏移量,请实施scrollViewDidScroll:委托方法:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.x >= 0 && scrollView.contentOffset.x <= 320) {
        NSLog(@"Offset %f", scroller.contentOffset.x);
    } else if (...) {
    }
}

当然,您需要查看滚动视图的delegate属性。