override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let moreButtonFrame = moreButton.frame.inset(by: UIEdgeInsets(top: -10, left: -10, bottom: -10, right: -10))
if moreButtonFrame.contains(point) {
return moreButton
} else {
return super.hitTest(point, with: event)
}
}
如果按钮很多,可以子类butto
class XXButton: UIButton {
var margin: CGFloat = 5
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
let area = self.bounds.insetBy(dx: -margin, dy: -margin) //负值是方法响应范围
return area.contains(point)
}
}
网友评论