Можно разрешить активировать оба жеста с помощью метода делегата:
- (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. Изменение значения BOOL путем проверки количества касаний в методе touchesMoved: withEvent (или, возможно, в другом методе UIGestureRegonizer).
Я думаю, что это должно работать, я делаю что-то похожее в приложении, которое позволяет масштабировать, вращать и перетаскивать, где перетаскивание разрешено, только когда пользователь не масштабирует / вращает.
~ Удачи