ios - contentOffset 跳过日志中的值

标签 ios xcode skip collectionview contentoffset

所以我有以下代码:

int actualPosition = self.collectionView.contentOffset.y;
NSLog(@"%i", actualPosition);

输出是:

2013-03-28 15:36:42.737 test[10544:907] 484
2013-03-28 15:36:42.754 test[10544:907] 490
2013-03-28 15:36:42.770 test[10544:907] 512
2013-03-28 15:36:42.787 test[10544:907] 550

我现在的问题是:为什么它会“跳过”(为什么“actualPosition”从来没有这些值)485-489、491-511 和 513-549?即使我滚动得更快,它不应该为所有“位置”记录/给出 actualPosition 这个值吗? float 的工作方式相同,所以这无关紧要。我该如何解决这个问题,以便 actualPosition 接收到滚动过的每个位置的值?

最佳答案

由于屏幕上有很多像素并且只有一些时间来移动您滚动的内容,因此 FPS 会“跳过”这些值。换句话说,如果您以 30fps 的速度在 1 秒内移动 100 个像素,则一个 fps 的值将跳跃 33 个像素。所以你每一步都会得到 +3,而不是 +1。

始终获得精确位置是不可能的,因为可能有一些滚动手势非常快,以至于整个屏幕在一帧内飞过。所以“跳跃”将和屏幕一样大。

关于ios - contentOffset 跳过日志中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15684838/

相关文章:

windows - 使用 cmd 跳过一次即将到来的计划任务

r - read.csv - 跳过具有不同列数的行

c# - 跳过数组中的最后一个元素并返回所有其他元素 C#

ios - 如何判断 iOS 设备上是否安装了 Dropbox?

ios - 在没有 DTrace 的情况下,Instruments 如何从 iOS 收集数据?

IOS 8 CLLocationManager 问题(授权无效)

ios - 根据数据更新rootview Controller

ios - stringbyreplacingoccurrencesofstring 不适用于\in iphone

Xcode 自动完成类扩展中的成员

ios - 无效的工具链。 iTunes 商店操作失败