touchesEnded 在设备改变方向后没有被调用

Posted

技术标签:

【中文标题】touchesEnded 在设备改变方向后没有被调用【英文标题】:touchesEnded not getting called after device changes orientation 【发布时间】:2016-02-14 05:29:10 【问题描述】:

我正在我的 ios 应用程序中实现 touchesBegantouchesEnded,试图检测用户何时将手指放在屏幕上以及何时松开。

我遇到的问题是,一旦调用touchesBegan,如果用户在仍然将手指放在屏幕上的同时旋转设备,当他放开屏幕时,touchesEnded 不会被调用。

有人知道为什么会这样吗?

【问题讨论】:

【参考方案1】:

您是否改为 touchesCancelled?

一般来说,系统会在touchesBegan 之后调用touchesEndedtouchesCancelled,因此代码应该同时处理这两者。触摸可能因各种原因而取消,例如手势识别器接管、视图上开始的非交互式动画、来电等。

【讨论】:

这感觉就像现在的评论。我建议您对其进行编辑以使其更具回答性,并在调用 touchesCancelled 时向 OP 解释,以及为什么在他的情况下没有调用 touchesEnded 好点。在两者中处理它就是诀窍。谢谢

以上是关于touchesEnded 在设备改变方向后没有被调用的主要内容,如果未能解决你的问题,请参考以下文章

SKScene touchesEnded 第二次呈现场景时未调用

当方向改变时重新定位控件

方向改变后播放位置重置为零

SpriteKit 设备方向改变导致 SKLabelNode 变形 Swift

电脑为啥没有声音怎么处理-4种办法

使用方向更改视图布局