【问题标题】:Why are my iOS events firing in the wrong order?为什么我的 iOS 事件以错误的顺序触发?
【发布时间】:2013-04-01 20:56:36
【问题描述】:

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

当您用导电棒敲击 iPhone 屏幕时,它应该首先检测触摸事件,然后检测加速度,以便准确知道您何时敲击它,以及敲击的力度和速度。

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

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

如果您能提供任何建议,我们将不胜感激。

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

didAccelerate: 1364850400.03221
touchesBegan: 1364850400.21486

所以你可以看到这是一个很小但很明显的区别。

【问题讨论】:

  • 你能加入一些调试语句并在此处或 pastebin 上列出输出吗?我想我有预感出了什么问题,但一些确凿的事实永远不会伤害:)
  • @Milimetric,好主意,已编辑。
  • 手机是放在平坦的表面上,还是拿在手里?另外,您是否尝试过使用 CoreMotion 框架并从 CMLogItem 类中读取时间戳属性?
  • @Lefteris,这头的击球机把它扔了,然后我用导电棒击打它。

标签: iphone ios accelerometer touchscreen touchesbegan


【解决方案1】:

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

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

【讨论】:

  • 谢谢!我尝试了汽车电池技术,假设我不再关心我原来的问题。
猜你喜欢
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
相关资源
最近更新 更多