У меня есть представление с a UITapGestureRecognizer
. Таким образом, когда я касаюсь на представлении, другое представление появляется выше этого представления. Это новое представление имеет три кнопки. Когда я теперь нажимаю на одной из этих кнопок, я не получаю действие кнопок, я только получаю действие жеста касания. Таким образом, я не могу использовать эти кнопки больше. Что я могу сделать для получения событий до этих кнопок? Странная вещь состоит в том, что кнопки все еще выделяются.
Я не могу только удалить UITapGestureRecognizer после того, как я получил, это - касание. Поскольку с ним новое представление может также быть удалено. Средство я хочу поведение как полный экран смотри, управляет.
Вы можете установить свой контроллер или представление (в зависимости от того, что создает распознаватель жестов) в качестве делегата UITapGestureRecognizer
. Затем в делегате вы можете реализовать -gestureRecognizer:shouldReceiveTouch:
. В своей реализации вы можете проверить, принадлежит ли прикосновение вашему новому подпросмотру, и если да, то проинструктировать распознаватель жестов игнорировать его. Что-то вроде следующего:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
// test if our control subview is on-screen
if (self.controlSubview.superview != nil) {
if ([touch.view isDescendantOfView:self.controlSubview]) {
// we touched our control surface
return NO; // ignore the touch
}
}
return YES; // handle the touch
}