2

У меня есть UIView, называемый view1. view1 имеет подзону под названием subview. Я добавил UITapGestureRecognizer в подвид следующим образом:UITapGestureRecognizer не отвечает на область subview вне родительского вида

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)]; 
[subview addGestureRecognizer:recognizer]; 

Если я постучала область перекрывается между подвид и view1 то метод handleTap получил называется. Но если я набрал область в подвью, которая была вне view1, тогда handleTap никогда не вызывался. Правильно ли это поведение? Если нет, какое-либо предложение о том, что я должен проверить?

btw: UIPanGestureRecognizer отлично работает. Он не проявляет поведения, упомянутого выше.

enter image description here

ответ

1

Вам нужно настроить родительский вид и изменить, как она обрабатывает штрихи. См. this question для получения более подробной информации.

1

Это поведение по умолчанию для UiView, subview должно быть в пределах границ родительского представления. Если вам нужно что-то другое, лучше создать пользовательский подкласс верхнего вида и переопределить (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

+0

Это также верно для представления, представленного в FormSheet? – rraallvv