为什么我的iOS事件以错误的顺序触发?

时间:2013-04-01 20:56:36

标签: iphone ios accelerometer touchscreen touchesbegan

我正在使用名为RealBaseball的iPhone应用程序。如果您熟悉RealSoccer,它就非常相似。它将允许您与世界各地的朋友一起玩iPhone。

当您使用导电球击中iPhone屏幕时,它应首先检测触摸事件然后检测加速度,以便确切知道您何时击中它,以及有多难以及多快。

这是我遇到一些技术难题的地方。我有标准的touchesBegandidAccelerate听众。问题是didAcceleratetouchesBegan之前触发。显然,有些事情是错误的,因为它不应该在蝙蝠接触之前开始加速。我可以缺少设置代码吗?

我需要解决这个问题,因为如果时机错误,另一端的击球机会很迟钝,而且不会有任何乐趣。

您可以提供任何建议。

编辑:我添加了一些格式为[[NSDate date] timeIntervalSince1970];的NSLog调用。这是输出:

didAccelerate: 1364850400.03221
touchesBegan: 1364850400.21486

所以你可以看到这是一个小而明显的差异。

1 个答案:

答案 0 :(得分:2)

你如何确保蝙蝠正在关闭从手机到手的导电电路?我建议大量使用用于制作触摸屏友好手套的材料。建议使用银线尼龙:http://www.howtogeek.com/130477/diy-touch-screen-mod-makes-regular-gloves-smartphone-friendly/

更新:哦,你可能需要放大蝙蝠经历的非常微小的电流,这样它就可以一直走到你的手上。我不是电工,但通过同一个线程连接到球棒上的便携式汽车电池应该可以解决问题。