如何创建一个具有大的可点击区域的小按钮

时间:2014-07-25 05:16:23

标签: objective-c xcode

我想创建一个关闭按钮,它看起来像一个中间带有x的圆圈。在x代码中,我将按钮的大小和宽度设置得很大,以便可触摸区域更大(50 x 50,字体只有22)。

我创建了一个按钮,将标题更改为X,然后设置以下内容:

[self.closeButton.layer setBorderWidth:2.0f];
[self.closeButton.layer setBorderColor:[[UIColor whiteColor] CGColor]];
[self.closeButton.layer setCornerRadius:self.closeButton.bounds.size.width/2];

圆形边框离X太远。如何将边框更紧密地带到X但不减小可点击区域的大小?

2 个答案:

答案 0 :(得分:3)

将图像分配给按钮。并根据需要制作可点击区域。然后通过将该按钮的插入值设置为顶部,底部,左侧,右侧来设置按钮中的图像位置。根据您的要求更改此值。您可以在界面构建器中设置插入值,如此处的图像所示。更改值并查看差异,将图像放在按钮中所需的确切位置。

setting inset

与此图片完全相同

setting inset with more tappable area

答案 1 :(得分:1)

我建议Max完全做了什么。他已经通过IB展示了如何做到这一点,这就是你通过代码来实现的:

myButton.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 25, 25);// UIButton

myBarButtonItem.imageInsets = UIEdgeInsetsMake(0, 0, 25, 25);// UIBarButtonItem

修改

很抱歉没有第一次正确阅读您的问题。我认为你会遇到与这种方法相同的问题:按钮的border / cornerRadius将尊重任何插入。它将根据按钮的框架绘制。在我的头顶只有(简单)解决方法是创建一个带有边框和角落的图像,然后将其设置为图像。图像将尊重插图,您将拥有所需的可点亮区域,边框正好位于您想要的位置。

通过子类化可能会有更多的优雅解决方法,但除非您在任何阶段更改按钮的边框宽度/颜色或角半径,否则我建议您坚持使用自定义图像。< / p>

编辑2:

您可能不想使用图片,而是使用this unicode character