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