增加Button的命中区域

时间:2017-08-24 08:15:10

标签: ios swift uibutton

我使用一个小图标作为UI按钮的图像。我想增加图标的命中区域,这样就可以调用IBaction而无需单击小图标。我在这里找到了类似的问题,解决方法是调整插图,但这似乎对我不起作用,命中区域仍然相同。

smallButton.imageEdgeInsets = UIEdgeInsets(top: -100.0, left: -100.0,bottom: -100.0, right: -100.0)

smallButton.contentEdgeInsets = UIEdgeInsets(top: -100.0, left: -100.0, bottom: -100.0, right: -100.0)

3 个答案:

答案 0 :(得分:3)

你可以继承UIButton或自定义UIView并覆盖点(inside:with :),例如:

Swift 3

override func point(inside point: CGPoint, with _: UIEvent?) -> Bool {
    let margin: CGFloat = 5
    let area = self.bounds.insetBy(dx: -margin, dy: -margin)
    return area.contains(point)
}

答案 1 :(得分:0)

增加按钮的高度和宽度。如果这对你不起作用。

您可以为它制作相同的按钮,它可以是没有标题的清晰颜色,并且尺寸是前一个按钮的两倍。然后将该按钮与之前的IBAction连接。

注意:确保新按钮位于上一个按钮的前面。

答案 2 :(得分:0)

一个简单但有效的方法是在这个小图像上面设置一个按钮。 enter image description here