0

我正在编写的一个应用程序要求用户摇动他们的设备 X 秒。

我尝试通过这样做motionBegan,它有时会起作用。但有时motionEndedor ormotionCancelled会在摇动过程motionBegan中被调用,除非你完全停止摇动,否则不会再次调用。而且似乎没有办法检测设备当前是否在晃动

App Store 中有许多应用程序成功地做到了这一点,所以显然我缺少一些东西。

4

1 回答 1

1

运动事件是离散的:一旦 iOS 检测到设备被摇动,它就会发送相应的事件,就是这样——你无法告诉它你对长摇还是短摇感兴趣。事实上,这里的文档说:

如果摇晃动作被中断或 iOS 确定该动作最终无效(例如,如果摇晃持续时间过长),则取消事件。

如果基本的抖动运动事件不足以满足您的应用程序,您将需要使用加速度计数据实现您自己的自定义抖动检测。这个答案是一个很好的起点。

于 2013-05-25T06:41:08.143 回答