0

我有一张用 OpenGLES 绘制的地图,我有一个平移手势识别器,它的 maximumNumberofTouches 设置为 1 以在地图周围平移,还有一个用于缩放的捏合手势识别器。我想在我完成缩放后开始平移,(一根手指从屏幕上抬起)但是平移手势识别器在 pinchgesturerecognizer 完成之前不会启动,即当它检测到屏幕上没有手指时。有任何想法吗?

4

1 回答 1

1

可以通过委托方法允许两个手势都处于活动状态:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
  shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    //  The two recognizers using the delegate (scale and rotate) should both be active.
    //
    return YES;
}

并保留一个 BOOL 来跟踪用户是否正在缩放,当 BOOL 为 YES 时,不允许执行平移手势中的代码。通过检查 touchesMoved:withEvent 方法(或其他一些 UIGestureRegonizer 方法)中的触摸次数来更改 BOOL 值。

我认为这应该可行,我在允许缩放、旋转和拖动的应用程序中做了类似的事情,其中​​只有在用户不缩放/旋转时才允许拖动。

~祝你好运

于 2012-01-04T03:23:37.913 回答