ScrollView есть некоторые подвиды ....
ScrollView Содержит свои предопределенные жесты (ПАН) и мой собственный жест (Pan), а также и признать его одновременно ...
подвиды также содержит custom Pan Gesture ......
Все работает отлично, кроме жесты на подвид ...
Когда я делаю панорамирование на SubView, SuperView также получает касания и обрабатывает то, что я не хочу ...
Когда панорама выполняется в подвид, супервизор не должен распознавать их ...
Как я могу заблокировать передачу моего суба SubView к его SuperView?Блок прохождения Жесты в SuperView
ответ
В основном, когда вы нажимаете на subview, жесты супервизора не распознаются, потому что ваш супервизор перекрывается подвью.
Добавить делегат в .h и дать ему tapGestures и дать состояние, как этот
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if([gestureRecognizer.view isKindOfClass:[superView class]])
return NO;
else
return YES;
}
Чтобы блокировать SuperView от ответа на жест, когда есть подтаблицы под точкой касания может быть сделано следующим образом:
реализовать следующий метод UIGestureDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
, как
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return (touch.view == superView);
}
и установите этот делегат на gestureRecognizer, назначенный superView.
Я надеюсь, что это должно сделать необходимое.
Для меня мне нужно было отметить «Взаимодействие с пользователем» в подвью, чтобы он работал, но это произошло. – Dan
Да, это то, что должно произойти ... но в этом случае его не происходит .... когда я удаляю одновременное распознавание жестов супервизора, тогда он работает как ожидается ..... любая идея, что может быть уловкой ? – bhawesh
за то, что вы возьмете условие и убедитесь, что тот, который приходит из супервизора, ничего не делает. – Balu
как-то проверить мой обновленный ответ. – Balu