核心方法
1. hitTest(_:with:)
hitTest(_:with:)override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if !self.isUserInteractionEnabled || self.isHidden || self.alpha < 0.01 {
return nil
}
if self.point(inside: point, with: event) {
for subview in self.subviews.reversed() {
let convertedPoint = subview.convert(point, from: self)
if let hitView = subview.hitTest(convertedPoint, with: event) {
return hitView
}
}
return self
}
return nil
}2. point(inside:with:)
point(inside:with:)区别总结
hitTest(_:with:) 和 point(inside:with:) 的关系
hitTest(_:with:) 和 point(inside:with:) 的关系应用场景
总结
Last updated