2013-03-16 2 views
4

ScrollView есть некоторые подвиды ....
ScrollView Содержит свои предопределенные жесты (ПАН) и мой собственный жест (Pan), а также и признать его одновременно ...
подвиды также содержит custom Pan Gesture ......
Все работает отлично, кроме жесты на подвид ...
Когда я делаю панорамирование на SubView, SuperView также получает касания и обрабатывает то, что я не хочу ...
Когда панорама выполняется в подвид, супервизор не должен распознавать их ...
Как я могу заблокировать передачу моего суба SubView к его SuperView?Блок прохождения Жесты в SuperView

ответ

0

В основном, когда вы нажимаете на subview, жесты супервизора не распознаются, потому что ваш супервизор перекрывается подвью.

Добавить делегат в .h и дать ему tapGestures и дать состояние, как этот

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if([gestureRecognizer.view isKindOfClass:[superView class]]) 
     return NO; 
    else 
     return YES; 
} 
+0

Да, это то, что должно произойти ... но в этом случае его не происходит .... когда я удаляю одновременное распознавание жестов супервизора, тогда он работает как ожидается ..... любая идея, что может быть уловкой ? – bhawesh

+0

за то, что вы возьмете условие и убедитесь, что тот, который приходит из супервизора, ничего не делает. – Balu

+0

как-то проверить мой обновленный ответ. – Balu

9

Чтобы блокировать SuperView от ответа на жест, когда есть подтаблицы под точкой касания может быть сделано следующим образом:

реализовать следующий метод UIGestureDelegate

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 

, как

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return (touch.view == superView); 
} 

и установите этот делегат на gestureRecognizer, назначенный superView.

Я надеюсь, что это должно сделать необходимое.

+1

Для меня мне нужно было отметить «Взаимодействие с пользователем» в подвью, чтобы он работал, но это произошло. – Dan