Я пытаюсь найти лучший метод для нахождения точного подпредставления (если оно есть) для данного CGPoint
в UIView
.
Часть моей сцены / ViewController представляет собой пользовательский подкласс UIView
(разработанный в XIB), который представляет UIStackView
подпредставлений (также пользовательских, разработанных в XIB).
VC имеет UITapGestureRecognizer
в этом настраиваемом представлении, и в моем @IBAction
я хочу определить, какой именно один из его подпредставлений был задействован, а затем обработать его соответствующим образом:
@IBAction func handleTap(recognizer:UITapGestureRecognizer) {
let tapLocation = recognizer.location(in: recognizer.view)
if let subviewTapped = customView.subviewAtLocation(tapLocation) {
handleTapForSubview(subviewTapped)
}
}
Однако я не знаю, как реализовать этот subviewAtLocation(CGPoint)
метод. Я не смог ничего найти в стандартных методах UIView.
Любой совет о том, как это сделать, будет приветствоваться.
В качестве альтернативы я рассмотрел добавление распознавателя отводов к каждому из подпредставлений вместо этого, затем делегирование родителю, затем к VC, но это кажется неэффективным, и как будто он помещает слишком много логики управления в представлениях, а не VC .
Спасибо.