У меня есть карта, нарисованная с помощью OpenGLES, и у меня есть распознаватель жестов панорамирования, для которого maxNumberofTouches установлен на 1 для панорамирования карты, и распознаватель жестов щипка для масштабирования. Я хочу начать панорамирование, как только закончу масштабирование (один палец отрывается от экрана), но распознаватель жестов панорамирования не срабатывает до тех пор, пока не будет выполнен pinchgesturerecognizer, то есть когда он обнаружит, что на экране нет пальцев. Любые идеи?
Как перейти от одного распознавателя жестов к другому
Ответы (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. Изменение значения BOOL путем проверки количества касаний в методе touchesMoved:withEvent (или, возможно, в каком-либо другом методе UIGestureRegonizer).
Я думаю, это должно работать, я делаю что-то подобное в приложении, которое позволяет масштабировать, вращать и перетаскивать, где перетаскивание разрешено только тогда, когда пользователь не масштабирует/не вращает.
~ Удачи
person
Ryan Crews
schedule
04.01.2012
нашел нечто подобное здесь: mindtreatstudios.com/our-projects/
- person jfisk; 04.01.2012