我注意到,touchesEnded 并不总是在多点触摸时传递到 SKScene。根据移开手指等的速度,我会永久错过一些已结束的触摸。 TouchsCancelled 已实现,我添加了一个自定义 UIView 并将其放在屏幕的左侧 - 没有问题。我制作了一个自定义 SKView 并捕获了事件 - 再次没问题。
很明显,SKScene 没有获得它嵌入的 SKView 的所有touchesEnded,但为什么呢?
(顺便说一句,我完全运行 SKScene,没有任何节点)
EDIT:
一些进一步的调查显示我可以让 SKScene 完全失去联系:
我将 3 根手指放在显示屏上,然后一次移开一根手指,直到只有一根手指接触。我移动手指 -> 只有 SKView 接收到移动事件,SKScene 不会。它也没有收到touchesEnded。
经过一些实验后,我可以说,当 TouchBegan 在通话中收到多于 1 次触摸时(例如,您“同时”按下两个手指),就会发生这种情况。这两个触摸然后会纠缠在一起,因此只有其中一个发送事件。
这似乎是 SKScene 中的一个错误。我正在 iPhone 5 上进行测试。
也许您正在使用一些手势识别器?
他们有财产取消TouchesInView它的默认值是YES。
将其更改为NO解决了我的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)