iphone - iPhone 中何时调用触摸取消方法?

标签 iphone uitouch

我能够理解,当用户刚刚触摸 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/

相关文章:

ios - 使用属性动态初始化任何 Objective-C 类

ios - 强制 View Controller 仅纵向

iphone - 使图像适合 UINavigationBar 栏

iphone - UIwindow 上的 UIimageView 上的触摸事件

iphone - 如何检测两根手指的轻弹

ios - 如何使用 SDL2 在 iOS 上请求全屏窗口

iphone - 使用 UIwebView 加载 URL 时出现问题

ios - 区分手指触摸和 Apple Pencil 触摸

iphone - 如何更好地拖动 UIButton?未调用 UIButton UIControlEventTouchUpInside 事件

ios - 在 iOS 上发布时获得接触