我开始尝试使用shake事件处理程序来擦除应用程序中的一些数据。我的摇动处理程序首先在子类化 UIApplication 中截获摇动事件。
我发现,如果我在应用程序运行时将手机放在口袋里,它会摇晃并启动擦除操作。 我使用模式警报来等待用户确认,但是从口袋中取出此警报时似乎不希望总是看到此警报。
有人可以提供有关如何在口袋中发生时自动禁用此功能的想法吗?
我的一个想法是使用超时。如果在一定时间内忽略警报,则忽略摇晃。我想知道是否有其他解决方案。
您可以使用环境光/接近传感器。轮询它以查看它是否检测到光线,是否确实启动了擦除,如果没有。这将解决"口袋里"的问题。
您可以等待多个摇晃手势发生。 如果您在超时内没有收到第二个(或第三个或第 n 个(手势,则忽略该手势?大多数故意的摇晃都会导致多种手势。