【问题标题】:Is there a way to get more precise timing data for UIView touchesBegan?有没有办法为 UIView touchesBegan 获取更精确的计时数据?
【发布时间】:2012-11-19 07:15:03
【问题描述】:

我正在编写一个应用程序,在该应用程序中获得有关用户何时点击UIView 的非常精确的数据会很有用。

传递给touchesBegan:UIEvent 仅具有以秒为单位的计时数据,这不够精确。

因此,从逻辑上讲,下一步似乎是记录使用mach_absolute_time() 或类似名称调用touchesBegan: 的时间。这种方法在大多数情况下运行良好,但如果系统正在做一些非常紧张的工作(尤其是在主线程上做 UI 工作),看起来touchesBegan 会被推回循环中——它仍然会触发,但迟到了。

我希望可能有一个较低级别的解决方案,我可以在信号链的某个点使用它来获取更精确的数据(至少在毫秒而不是秒的数量级上)。

当然,我也会尝试让我的 UI 线程尽可能高效地运行以避免这些延迟,但尤其是在旧设备上,这些时间上的小问题似乎是不可避免的。

【问题讨论】:

    标签: objective-c ios uiview touchesbegan


    【解决方案1】:

    UIEvent 的时间戳是一个 NSTimeInterval,它是一个浮点类型,整数对应于整秒……但小数部分包括亚毫秒精度。你确定它对你来说不够精确吗?

    【讨论】:

    • 啊——太好了。老实说,我只是阅读了说明这是系统正常运行时间以秒为单位的文档,甚至没有考虑它的浮点部分!
    猜你喜欢
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多