话不多说,上代码:
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
// 得到不处理的情况下,相应点击的view结果,目的是不影响其它的点击
let result = super.hitTest(point, with: event)
// 得到点相对于button的坐标
let testBtnPoint = self.popView.convert(point, from: self)
// 如果坐标在button内,返回这个button,就会相应button的事件
if self.popView.point(inside: testBtnPoint, with: event) {
return self.popView;
}
// 返回super的响应点击的view
return result
}