Как добавить UIPanGestureRecognizer в подвиды UIScrollView
я добавляю подпанели к UIScrollView
и затем я добавляю UIPanGestureRecognizer
к этим подвидам. Все работает нормально, но теперь после добавления UIPanGestureRecognizer
для подвидов вида прокрутки прокрутка невозможна.
каким может быть возможное решение этой проблемы?
2 ответов
проблема в том, что распознаватель жестов панорамирования используется в представлении прокрутки для управления прокруткой. Ваш распознаватель жестов принимает приоритет и отключает просмотры прокрутки
Если вы хотите всегда иметь возможность прокручивать, вы можете установить распознаватель жестов, чтобы требовать прокрутки просмотров один сбой, прежде чем он будет работать:
[self.myCustomPanRecognizer requireGestureRecognizerToFail:self.scrollView.panGestureRecognizer];
Edit: как указал Бастиан в комментариях, ссылка на pan guesture находится только в iOS 5, до этого, проверьте массив распознавателей жестов и найдите тип UIPanGestureRecognizer
Если вы хотите, чтобы оба работали, вам может потребоваться сделать что-то, чтобы отделить распознаватель от представлений прокрутки, например, сделать пользователя нажмите и удерживайте, прежде чем ваш пользовательский распознаватель будет распознан.
существует также метод делегата, который позволит и recognisers работать вместе, но я не уверен, насколько хорошо это работает, когда оба того же типа
Если вы хотите использовать оба simultaneus вы можете использовать
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
от делегата, но это, вероятно, не то, что вы хотите ;)