解决移动对象的多重冲突冲突

时间:2014-05-25 13:58:25

标签: ios objective-c uigesturerecognizer uipangesturerecognizer uipinchgesturerecognizer

我有一个矩形(源自UIView)。此矩形附加了UITapGestureRecognizerUIPanGestureRecognizerUIPinchGestureRecognizerUIRotationGestureRecognizer

这些手势识别器用于移动视图,缩放和旋转视图。  但是识别器之间存在冲突,因为在平移时旋转不起作用等等......

我尝试了以下

[self.pincher requireGestureRecognizerToFail:self.panner];

在平移时旋转工作。如何扩展这样的收缩工作呢?

修改

什么工作: 每个手势识别器都在自己动手。但是在组合中存在麻烦或者说我想要一个不同的行为;)如果我平移一个物体并用第二个手指点击它并且捏,我想要缩放对象 - 这是工作

但是,用第二根手指开始旋转可以使用上面的代码行。

1 个答案:

答案 0 :(得分:1)

UIGestureRecognizerDelegate协议声明了以下方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 您可以覆盖此方法并返回YES以使识别器同时工作:

self.pincher.delegate = self;
self.panner.delegate = self;

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
}

修改 我写了一个简单的视图控制器,在UIView上同时实现缩放,旋转和平移,你可以查看这个gist