我使用一个小图标作为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)
答案 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)