我能够理解,当用户刚刚触摸 View 时,触摸开始和结束被调用。当用户在 View 上滑动手时,触摸 Moved 方法将被调用。但是何时调用 TouchCanceled 或通过用户的什么操作调用此方法?
最佳答案
我认为调用touchesCancelled的最常见原因(无论如何从iOS 3.2开始)可能是在UIGestureRecognizer识别手势之后。如果您的 View 附加了任何类型的手势识别器,那么提供 TouchCancelled 方法的自定义实现通常非常重要 - 请注意,这包括使用手势识别器的现成 View ,包括 UIScrollView。
默认情况下,手势识别器会在识别后取消将触摸传送到 HitTest View ,尽管可以禁用此行为。这涉及到将touchesCancelled消息发送到该 View ,很可能是在touchesBegan或touchesMoved消息之后。如果您的触摸处理代码依赖于在touchesEnded方法中实现的代码,则该方法可能永远不会被触发,并且可能会发生某种严重的问题,因此需要正确地解决touchesCancelled中的任何松散问题。
手势识别器功能的来龙去脉显然比我在这里提到的要复杂一些 - 我强烈建议阅读 Apple 的 Gesture Recognizers文档。
此外,请查看 WWDC videos关于手势识别器(从 2010 年开始)。
关于iphone - iPhone 中何时调用触摸取消方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739675/