Мне нужно написать function
, который вернет true
, если задано point
внутри любого из subviews hierarchy
из view A
.A
может быть transformed
(повернуто), а clipToBounds
отключено.В его подпредставлениях также может быть отключен clipToBounds
, и true
должен быть возвращен, если какой-либо из subviews
был нажат.У меня есть кое-что, что почти работает, но терпит неудачу, когда представление поворачивается.Может кто-нибудь подсказать как это исправить?
extension UIView {
func hitTestIgnoringBounds(_ point: CGPoint) -> Bool {
guard !isHidden && alpha > 0 else { return false }
let subPoint = frame.origin - point
return frame.contains(point) || subviews.contains {
return $0.hitTestIgnoringBounds(subPoint)
}
}
}