Найдите, какое дочернее представление коснулось при использовании UITapGestureRecognizer

То, как я знаю, на котором из ребенок просматривает событие, произошло при использовании UIGestureRecognizers?

Согласно документации:

Устройство распознавания жеста воздействует на касания, протестированные на хит к определенному представлению и всем подпредставлениям того представления.

Насколько я вижу, свойство 'представления'

Представление устройство распознавания жеста присоединено.

который будет родительским представлением.

67
задан LK. 7 May 2010 в 13:29
поделиться

1 ответ

Это позволит найти самое внутреннее представление-потомок в месте расположения события. (Обратите внимание, что если у этого дочернего представления есть интерактивные внутренние приватные внуки, этот код найдет и их.)

UIView* view = gestureRecognizer.view;
CGPoint loc = [gestureRecognizer locationInView:view];
UIView* subview = [view hitTest:loc withEvent:nil];

В Swift 2:

let view = gestureRecognizer.view
let loc = gestureRecognizer.locationInView(view)
let subview = view?.hitTest(loc, withEvent: nil) // note: it is a `UIView?`

В Swift 3:

let view = gestureRecognizer.view
let loc = gestureRecognizer.location(in: view)
let subview = view?.hitTest(loc, with: nil) // note: it is a `UIView?`
187
ответ дан 24 November 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: