【发布时间】:2012-12-18 16:44:42
【问题描述】:
我正在开发一个应用程序,其中大多数触摸手势都是平移手势(但我没有使用平移手势识别器)。我正在使用UIGestureRecognizerDelegate 和touchesBegan、touchesMoved、touchesEnded 和touchesCancelled。但是,屏幕上有几个位置,如果平移从那里开始,我想将其识别为点击事件。我可以通过简单地识别 touchesBegan 中的位置来做到这一点。我的问题是,我可以在那时解除触摸以防止锅的继续吗?如果平底锅从屏幕中的这个位置开始,则可以保证它不是用户真正想要的平底锅。我希望这是有道理的。
编辑:我已经意识到,即使对于一个应该被忽略的点,管理水龙头的额外开销也是微不足道的,所以我想我会这样做。不过,我会把这个问题留在这里,以防有办法阻止手势继续被跟踪。
我还需要关于如何处理以下情况的建议。
假设用户启动了一个平底锅(不是在刚刚描述的区域,而是在真正打算成为平底锅的地方),并且在平底锅进行的同时,另一个平底锅在屏幕上的其他地方启动。我如何识别这种情况?
编辑:我现在正在测试这段代码是否能解决这个问题:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
编辑:ARC 禁止显式解除分配,所以现在我将我的问题修改为更一般的问题,如果有的话,我可以做些什么来抑制进一步的行动。还是我只需要处理它?
【问题讨论】:
-
您可以禁止进一步的操作。请看问题:stackoverflow.com/questions/11667329/…
-
@Fawaz 我认为这不适用于我的情况。我有一个主视图,其中包含未知数量的子视图,这些子视图本质上是四处移动的精灵。我正在使用的手势识别器附加到主视图,而不是子视图。识别器永远不需要被移除,除非我遗漏了什么。
标签: ios uigesturerecognizer gesture pan