Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何创建具有大可点击区域的小按钮 我想创建一个关闭按钮,它看起来像一个中间有X的圆。在x代码中,我将按钮的大小和宽度设置为大,以便可触摸区域更大(50 x 50,字体仅为22)_Objective C_Xcode - Fatal编程技术网

Objective c 如何创建具有大可点击区域的小按钮 我想创建一个关闭按钮,它看起来像一个中间有X的圆。在x代码中,我将按钮的大小和宽度设置为大,以便可触摸区域更大(50 x 50,字体仅为22)

Objective c 如何创建具有大可点击区域的小按钮 我想创建一个关闭按钮,它看起来像一个中间有X的圆。在x代码中,我将按钮的大小和宽度设置为大,以便可触摸区域更大(50 x 50,字体仅为22),objective-c,xcode,Objective C,Xcode,我创建一个按钮,将标题更改为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,但不减小可单击

我创建一个按钮,将标题更改为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,但不减小可单击区域的大小?

将图像指定给按钮。并根据需要制作可敲击区域。然后通过将按钮的插入值设置为“上”、“下”、“左”、“右”,在按钮中设置图像位置。根据您的要求更改此值。您可以从interface builder中设置插入值,如图所示。更改该值并查看差异,以将图像放置在按钮中所需的确切位置

和这张照片一模一样


将图像分配给按钮。并根据需要制作可敲击区域。然后通过将按钮的插入值设置为“上”、“下”、“左”、“右”,在按钮中设置图像位置。根据您的要求更改此值。您可以从interface builder中设置插入值,如图所示。更改该值并查看差异,以将图像放置在按钮中所需的确切位置

和这张照片一模一样


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

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

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

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

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

编辑2:


而不是使用你可能想要使用的图像。

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

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

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

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

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

编辑2:


而不是使用您可能想要使用的图像。

我怀疑您是否可以。您可能必须使按钮“大”,但通过子类化使其看起来更小。您可以在按钮上添加子视图以绘制任意大小的圆,并使实际按钮尽可能大。要使用我的给定解决方案,您必须将边框设置为图像而不是按钮。我怀疑您是否可以。您可能必须使按钮“大”,但通过子类化使其看起来更小。您可以向按钮添加子视图以绘制任意大小的圆,并使实际按钮尽可能大。要使用给定的解决方案,您必须将边框设置为图像而不是按钮。@Max,我相信我们实际上没有回答他的问题。答案是正确的。但他希望边界更接近X图像。这可以通过在图像中添加边框来处理我们的解决方案。@Max,我相信我们实际上没有回答他的问题。答案是正确的。但他希望边界更接近X图像。这可以通过在图像中添加边框来使用我们的解决方案。