Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIScrollview中的ContentOffset问题_Ios_Objective C_If Statement_Uiscrollview_Contentoffset - Fatal编程技术网

Ios UIScrollview中的ContentOffset问题

Ios UIScrollview中的ContentOffset问题,ios,objective-c,if-statement,uiscrollview,contentoffset,Ios,Objective C,If Statement,Uiscrollview,Contentoffset,我有一个奇怪的问题。我有一个ScrollView,ContentOffset已经设置好了。 我用下面的代码在它的委托中做了一个条件 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{ if(scrollOffsetY > 90 && scrollOffsetY < 150) { NSLog(@"ContentOffset===>%f",ContentOffset); } }

我有一个奇怪的问题。我有一个ScrollView,ContentOffset已经设置好了。 我用下面的代码在它的委托中做了一个条件

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

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

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

    }
}
-(无效)scrollViewDidScroll:(UIScrollView*)scrollView{
如果(scrollOffsetY>90&&scrollOffsetY<150){
NSLog(@“ContentOffset===>%f”,ContentOffset);
}
}
我所写的条件是有效的,只有当我慢慢滚动滚动滚动视图时才会进入这种状态。如果我滚动得更快。它没有进入我的循环


我该如何解决这个问题?当条件为真时,得到确切的值

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

 if (previousScrollOffsetY > 150 && scrollOffsetY < 90) || (previousScrollOffsetY < 90 && scrollOffsetY > 150) {
    NSLog(@"Skipped area")
}
previousScrollOffsetY = scrollOffsetY;
if(previousScrollOffsetY>150&&scrollOffsetY<90)| |(previousScrollOffsetY<90&&scrollOffsetY>150){
NSLog(@“跳过区域”)
}
previousScrollOffsetY=scrollOffsetY;

将代码移动到EndDeclratingScrollViewDid仅滚动每个帧的更新。如果快速滚动,则contentOffset会在每一帧中跳转非常大的数字。因此,它可以在一帧内从低于90跳到高于150,代码永远不会被命中。在不知道您的目标是什么的情况下,无法建议“修复”此问题的方法。Hi@Anbu.Karthik,ScrollViewDiEndDecreating代理仅在滚动完成后调用,因此当我快速滚动时。仅当滚动在我提到的If条件中的Content offset的值之间停止时,该条件才满足。所以这对我没有帮助。嗨,琼罗斯,是的,你说得对。但我怎样才能达到这个条件呢?有没有其他方法可以达到这个目的?你的目标是什么?