我有一个用OpenGLES绘制的地图,我有一个平移手势识别器,其中maximumNumberofTouches设置为1以平移地图和一个用于缩放的捏合手势识别器。我想在完成缩放后开始平移,(一个手指从屏幕上抬起)但是平移手势识别器不会启动,直到完成pinchgesturerecognizer,这是当它检测到屏幕上没有手指时。有什么想法吗?
答案 0 :(得分: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值。
我认为这应该有用,我在应用程序中执行类似的操作,允许缩放,旋转和拖动,只有当用户没有缩放/旋转时才允许拖动。
〜祝你好运