2017-08-24 45 views
1

我使用一个小图标作为UIbutton的图像。我想增加图标的命中区域,这样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

增加按钮的大小的宽度双图像图标 –

+0

https://stackoverflow.com/questions/42181550/how-can-i-expand-the-hit-area-of-a-specific-uibutton的-in-swift https://stackoverflow.com/questions/31056703/how-can-i-increase-the-tap-area-for-uibutton –

回答

2

你可以继承UIButton的或定制的UIView和覆盖点(内:喜欢的东西与:):

斯威夫特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) 
} 
0

增加按钮的高度和宽度。如果这不适合你。

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

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

0

一个简单但工作的方式是在这个小图像上方设置一个按钮。 enter image description here