ios - SpriteKit SKScene 缺少 touchesEnded

标签 ios sprite-kit touches uiresponder

我注意到 touchesEnded 并不总是在多点触控时传送到 SKScene。根据移除手指等的速度,我会永久错过一些 touchesEnded。 touchesCancelled 已实现,我添加了一个自定义 UIView 并放在屏幕左侧 - 没问题。我制作了自定义 SKView 并捕获了事件 - 再次没问题。

很明显,SKScene 没有得到它嵌入的 SKView 的所有 touchesEnded,但为什么呢?

(顺便说一句,我在没有任何节点的情况下完全运行 SKScene)

编辑:

一些进一步的调查显示我可以让 SKScene 完全失去联系:

我将 3 根手指放在显示屏上,然后一次移开它们,直到只有一根手指接触。我移动手指 -> 只有 SKView 收到移动事件,SKScene 没有。它也不会收到 touchesEnded。

经过一些实验后,我可以说当 touchesBegan 在通话中收到超过 1 次触摸时(例如,您“同时”按下两根手指),就会发生这种情况。然后这两个触摸会纠缠在一起,因此只有其中一个会发送事件。

这似乎是 SKScene 中的错误。我正在 iPhone 5 上进行测试。它会

最佳答案

可能您正在使用一些手势识别器? 它们具有属性 cancelsTouchesInView,默认值为 YES。 将其更改为 NO 解决了我的问题。

关于ios - SpriteKit SKScene 缺少 touchesEnded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689885/

相关文章:

swift - 如何更改 SKScene 的呈现 View ?

ios - TouchesBegan 未调用

ios - SpriteKit - touchesMoved 调用不够频繁 - 快速移动

ios - 仅当触摸类型为手指时,如何将触摸事件传递给其他 View ?

ios - UIImage 上的圆角

iOS 在状态栏上隐藏时间

ios - 像 Instagram iPhone 应用程序一样向右滑动时导航弹出 View 。我如何实现这一点?

iphone - iOS 开发 : How can I animate the addition/removal of form controls in a view?

swift - 如何在 SpriteKit 的自上而下 View 中检测游戏结束无尽的 runner 游戏

ios - 从物理世界中移除物理体的问题(spritekit)