【发布时间】:2017-04-20 12:54:33
【问题描述】:
我有一个奇怪的问题。我有一个 ScrollView 并且 ContentOffset 已经设置为它。 我已经通过下面的代码在它的委托中创建了一个条件。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
if(scrollOffsetY > 90 && scrollOffsetY < 150) {
NSLog(@"ContentOffset===>%f",ContentOffset);
}
}
我写的条件只有在我慢慢滚动滚动视图时才有效。如果我滚动得更快。它没有进入我的循环。
我该如何解决这个问题?并在条件为真时获取确切值?
【问题讨论】:
-
将您的代码移至 enddeclrating
-
scrollViewDidScroll 只更新每一帧。如果你快速滚动 contentOffset 可以为每一帧跳跃一个非常大的数字。所以它可以在一帧内从 90 以下跳到 150 以上,并且代码永远不会被击中。如果不知道你的目标是什么,就没有办法提出“解决”这个问题的方法。
-
嗨@Anbu.Karthik,scrollViewDidEndDecelerating Decelegate 仅在滚动完成后调用,所以当我滚动 Fast 时。仅当我提到的 If 条件中的内容偏移值之间的滚动停止时,条件才满足。所以这对我没有帮助。
-
嗨@JonRose,是的,你说得对。但是我怎样才能达到这个条件呢?有没有其他方法可以实现?
-
你的目标是什么?
标签: ios objective-c if-statement uiscrollview contentoffset