Swift 扩大按钮的点击区域

有时间多更新几种

方法一

var expandSizeKey = "expandSizeKey"
/// Expand click range
/// - Parameter size: size
open func kExpandSize(size:CGFloat) {
     objc_setAssociatedObject(self, &expandSizeKey,size, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY)
}
        
func expandRect() -> CGRect {
     let expandSize = objc_getAssociatedObject(self, &expandSizeKey)
     if (expandSize != nil) {
          return CGRect(x: bounds.origin.x - (expandSize as! CGFloat), y: bounds.origin.y - (expandSize as! CGFloat), width: bounds.size.width + 2*(expandSize as! CGFloat), height: bounds.size.height + 2*(expandSize as! CGFloat))
     }
     return bounds;
}
    
open override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
     let buttonRect = expandRect()
     if (buttonRect.equalTo(bounds)) {
         return super.point(inside: point, with: event)
     }
     return buttonRect.contains(point)
}

方法二

----TBD

你可能感兴趣的:(Swift 扩大按钮的点击区域)