Самый простой способ сделать это - использовать один палец для перемещения изображения и два пальца для прокрутки изображения.
Если вы используете iOS 5, это очень просто:
self.scrollView.panGestureRecognizer.minimumNumberOfTouches = 2;
Если вы хотите поддерживать более старые версии iOS, вам нужно проделать еще немного работы:
for (UIGestureRecognizer *gesture in self.scrollView.gestureRecognizers){
if ([gesture isKindOfClass:[UIPanGestureRecognizer class]]){
((UIPanGestureRecognizer *)gesture).minimumNumberOfTouches = 2;
}
}
Если вы хотите использовать жесты одним пальцем для обоих, есть несколько способов сделать это. Вы можете прикрепить UIPanGestureRecognizer
к каждому виду изображения. Возможно, вам придется указать собственному представлению прокрутки UIPanGestureRecognizer
, чтобы отложить до распознавателей представления изображений, используя сообщение requireGestureRecognizerToFail:
.
Другим способом было бы установить делегат UIPanGestureRecognizer
представления прокрутки для объекта, который вы создаете и который реализует метод gestureRecognizer:shouldReceiveTouch:
. В этом методе вы можете проверить, является ли сенсорный вид одним из ваших изображений. Если это так, верните NO
, чтобы предотвратить активацию распознавателя жестов панорамирования в представлении прокрутки.