iOS:将两个UIButtons组合到一个UIButton

时间:2014-03-25 00:03:39

标签: ios iphone objective-c uibutton storyboard

在故事板上我有两个UIButton。在我的UIViewController子类中,我有一个用于此按钮的IBAction方法。其中一个按钮有一个图像,没有标题,另一个有标题但没有得到图像。因此,它只是一个行为按钮和普通按钮的图像。

这两个按钮都调用一个方法。问题是,如果我按下一个按钮,另一个按钮不会突出显示。这个按钮有填充的另一个问题,如果这个填充可以触摸,我会更好(我的意思是图像按钮和标题按钮之间的空间可以点击)。

我知道我可以将UIButton子类化并按我的意愿制作我的按钮,但也许有一种方法可以在不进行子类化的情况下制作我想要的东西?

感谢。

3 个答案:

答案 0 :(得分:2)

1)

将两个按钮分配给属性。

当IBAction触发时,您可以通过这些控件“"highlighted" propertiesvia setHighlighted:设置一个或两个按钮突出显示。

2)

至于可触摸按钮之间的空间,将按钮图形的对齐方式设置为左对齐或右对齐(后者是我在下面的示例中所做的),这两个单独的按钮具有接触的边缘。

Two Buttons Touching

3)或......

您可以作弊并只需一个按钮,并在图片和按钮文字之间留出一些空格,如下所示:

One Button 是的,在“按钮”这个词之前,这是一大堆空格(我用绿色突出显示)。

答案 1 :(得分:0)

子类化是一件好事。如果您需要一个同时包含图像和标题的按钮,那么请务必创建一个UIButton的子类,它可以完成您想要的任务。你这样做一次,然后在任何你想要的地方使用它。另一种方法是在你想要这个外观的地方堆放重复的按钮。

答案 2 :(得分:0)

我找到了最适合我的变种,我认为对于所有人来说,遇到了同样的问题。如果您有一个用于图像的UIButton和另一个用于文本的UIButton(标题标签),则可以将这两个UIButton组合为一个Custom类型的UIButton。然后,您可以将图像和标题标签文本设置为此自定义按钮。之后,使用Insets布置图片和标题标签。

例如,要在图像下设置标题标签,您必须将Inset Left参数设置为负值,将Inset Left参数设置为大于图像高度的正值。使用Insets,您也可以设置正确的图像尺寸。

使用这种方式,您无需自己处理高亮显示属性更改。