UIScrollview中的ContentOffset问题

时间:2017-04-20 12:54:34

标签: ios objective-c if-statement uiscrollview contentoffset

我有一个奇怪的问题。我有一个ScrollView和ContentOffset已经设置为它。 我已通过以下代码在其代表中提出了条件。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

    if(scrollOffsetY > 90 && scrollOffsetY < 150) {

     NSLog(@"ContentOffset===>%f",ContentOffset);

    }
}

我编写的条件只有在我慢慢滚动滚动视图时才能进入。如果我滚动更快。它没有进入我的循环。

我该如何解决这个问题?并在条件为真时获得精确值?

1 个答案:

答案 0 :(得分:1)

UIScrollView不会为每个滚动的像素调用委托。相反,它会在每次帧上显示时调用它。当您快速滚动时,滚动视图可能会跳过您要检查的区域。如果您需要捕捉指定区域的时刻,如果在屏幕上,您可以添加一个变量来存储前一个偏移并添加如下条件:

 if (previousScrollOffsetY > 150 && scrollOffsetY < 90) || (previousScrollOffsetY < 90 && scrollOffsetY > 150) {
    NSLog(@"Skipped area")
}
previousScrollOffsetY = scrollOffsetY;