如何在不改变swift中的背景图像的情况下增加UIButton的拍子区域

时间:2016-06-22 17:04:27

标签: xcode swift uibutton

以下代码完美地工作,除了两个彼此靠近的按钮。有没有办法使用此扩展我喜欢使用的按钮?或者,我可以排除不需要使用此扩展程序的按钮吗?

extension UIButton {
     public override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
         let buttonSize = self.frame.size
         let widthToAdd = (44-buttonSize.width > 0) ? 44-buttonSize.width : 0
         let heightToAdd = (44-buttonSize.height > 0) ? 44-buttonSize.height : 0
         let largerFrame = CGRect(x: 0-(widthToAdd/2), y: 0-(heightToAdd/2), width: buttonSize.width+widthToAdd, height: buttonSize.height+heightToAdd)
         return (CGRectContainsPoint(largerFrame, point)) ? self : nil
     }
}

1 个答案:

答案 0 :(得分:0)

不要让事情变得复杂,也不要直接在代码中选择数字44。您不需要扩展UIButton,因为您不需要以这种奇怪的方式处理所有UIButton行为。

我只需要制作一个更大的透明按钮(颜色清晰),然后添加一个小的UIImageView作为子视图。这是我猜的最简单的方法。