Быстрый вопрос: как определить, является ли распознаватель признака касания в пределах подвид представления, к которому он добавлен? Например. если я нажимаю на объект, такой как квадрат, который был добавлен в качестве подзаголовка на фон, к которому добавлен распознаватель жестов, как я могу обнаружить, что он был использован?Как обнаружить жест выделения в подземельях
ответ
Вы можете захватить точку отвода от распознавателя жестов, когда метод вашего обработчика называется соответствующим любому виду, которое вы хотите, используя -locationInView:
. Затем используйте следующий метод в UIView: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
, чтобы получить ссылку на фактический подпункт, который был прослушен, помня, что точка, в которой вы проходите, находится в том же координатном пространстве, что и представление.
Некоторый код, чтобы вы начали:
CGPoint point = [tapGestureRecognizer locationInView:parentView];
UIView *tappedView = [parentView hitTest:point withEvent:nil];
Для хит тестирования для работы вид должен иметь userInteractionEnabled
набор свойств для YES
. Многие представления, например UILabel
, имеют значение NO
по умолчанию. Так что до вышеназванной:
self.subviewOfInterest.userInteractionEnabled = YES;
Спасибо, что помогает много! – Fitzy
Спасибо @Brandom –
вы можете использовать requireGestureRecognizerToFail:
признать кран на подвид см this код
может быть, вы должны установить в качестве: subviews.userInteractionEnabled = YES; удачи!
Черт! Это то, что мне нужно. Мой subview был проигнорирован gestureRecognizer, и теперь он работает. Благодарю. – surfrider
Просьба четко разъяснить, что вы хотели бы сделать? хотите распознать щелчок на subview? –