使 UIButton 的点击区域更大

Posted

技术标签:

【中文标题】使 UIButton 的点击区域更大【英文标题】:make UIButton tap area larger 【发布时间】:2015-03-24 14:44:01 【问题描述】:

我有很多按钮,但它们都很小,我不想让它们变大,我只想让点击区域更大。我试过了

func makeInsets(button: UIButton) 
    button.imageEdgeInsets = UIEdgeInsets(top: -40, left: -40, bottom: -40, right: -40)

但这只会使图像更大。对此案有何建议?

【问题讨论】:

你不能让按钮的点击区域超出它的框架。 这就是按钮的用途!!!你可以试试touch开始的方法!! 所以唯一的办法就是让按钮的框架更大? 是的!!!这是唯一的方法 将按钮的大小更改为更大...? 【参考方案1】:

您可以通过将按钮框架变大然后使用EdgeInsets 进行调整来做到这一点:

1 选择您的按钮;

2 转到此菜单和“边缘”类别;

3 选择“内容”并选择“图片”;

4 调整“上”“下”“左”右“插图调整按钮内的图像

为此,必须将图像添加到带有“..setImage”而不是“..setBackgroundImage”的按钮

如果选择“内容”,它将同时修改:按钮内的图像和文本

它也可以通过编程方式完成,但由于无法看到实时修改而有点困难,您必须计算。

希望对你有帮助。

更新:

作为您问题更新的更新,您可以尝试:

-将-40 更改为40 :这将使您的按钮保持更大,并且内部的图像将在每边变小40,它会回答您的问题

如果您想修改整个按钮(文本 + 图像),您应该使用 btn.contentEdgeInsets 而不是 btn.imageEdgeInsets 并设置值

【讨论】:

谢谢。像魅力一样工作!【参考方案2】:

使按钮的框架更大,但在界面生成器中更改视图模式以使图像居中,而不是填充。这会使图像保持原始大小,但按钮的边框会不可见地延伸。

【讨论】:

以上是关于使 UIButton 的点击区域更大的主要内容,如果未能解决你的问题,请参考以下文章

如何使整个区域可点击?

在jquery mobile中使按钮点击区域更大

如何使 UIButton 与 UIScrollView 一起移动

如何以编程方式为处于触摸状态的 UIButton 创建灰色叠加层?

UIButton点击区域太大

如何在 Swift 中扩展特定 UIButton 的点击区域?