Быстрый вопрос: как я обнаруживаю, что распознаватель распознавания жестов находится в подчиненном представлении, к которому он добавлен? Например. если я нажимаю на объект, такой как квадрат, который был добавлен в качестве подзаголовка на фон, к которому добавлен распознаватель жестов, как я могу обнаружить, что он был использован?
Как распознать жест нажатия в подзонах
Ответ 1
Вы можете захватить точку отвода от распознавателя жестов, когда метод обработчика называется соответствующим любому виду, которое вы хотите использовать с помощью -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;
Ответ 2
возможно, вы должны указать: subviews.userInteractionEnabled = YES; удачи!
Ответ 3
вы можете использовать requireGestureRecognizerToFail:
, чтобы распознать ответ на подзаголовок, пожалуйста, обратитесь этот код