【发布时间】:2016-02-14 05:29:10
【问题描述】:
我正在我的 iOS 应用程序中实现 touchesBegan 和 touchesEnded,试图检测用户何时将手指放在屏幕上以及何时松开。
我遇到的问题是,一旦调用touchesBegan,如果用户在仍然将手指放在屏幕上的同时旋转设备,当他放开屏幕时,touchesEnded 不会被调用。
有人知道为什么会这样吗?
【问题讨论】:
标签: ios swift uiresponder
我正在我的 iOS 应用程序中实现 touchesBegan 和 touchesEnded,试图检测用户何时将手指放在屏幕上以及何时松开。
我遇到的问题是,一旦调用touchesBegan,如果用户在仍然将手指放在屏幕上的同时旋转设备,当他放开屏幕时,touchesEnded 不会被调用。
有人知道为什么会这样吗?
【问题讨论】:
标签: ios swift uiresponder
您是否改为 touchesCancelled?
一般来说,系统会在touchesBegan 之后调用touchesEnded 或touchesCancelled,因此代码应该同时处理这两者。触摸可能因各种原因而取消,例如手势识别器接管、视图上开始的非交互式动画、来电等。
【讨论】:
touchesCancelled 时向 OP 解释,以及为什么在他的情况下没有调用 touchesEnded。