【发布时间】:2012-11-19 07:15:03
【问题描述】:
我正在编写一个应用程序,在该应用程序中获得有关用户何时点击UIView 的非常精确的数据会很有用。
传递给touchesBegan: 的UIEvent 仅具有以秒为单位的计时数据,这不够精确。
因此,从逻辑上讲,下一步似乎是记录使用mach_absolute_time() 或类似名称调用touchesBegan: 的时间。这种方法在大多数情况下运行良好,但如果系统正在做一些非常紧张的工作(尤其是在主线程上做 UI 工作),看起来touchesBegan 会被推回循环中——它仍然会触发,但迟到了。
我希望可能有一个较低级别的解决方案,我可以在信号链的某个点使用它来获取更精确的数据(至少在毫秒而不是秒的数量级上)。
当然,我也会尝试让我的 UI 线程尽可能高效地运行以避免这些延迟,但尤其是在旧设备上,这些时间上的小问题似乎是不可避免的。
【问题讨论】:
标签: objective-c ios uiview touchesbegan