【问题标题】:iOS: Combine two UIButtons to one UIButtoniOS:将两个 UIButton 合并为一个 UIButton
【发布时间】:2014-03-25 00:03:38
【问题描述】:

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

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

我知道我可以继承 UIButton 并根据需要制作我的按钮,但也许有一种方法可以在没有子类的情况下制作我想要的东西?

谢谢。

【问题讨论】:

    标签: ios iphone objective-c uibutton storyboard


    【解决方案1】:

    1)

    将两个按钮都分配给属性。

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

    2)

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

    3) 或者...

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

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

    【讨论】:

      【解决方案2】:

      子类化是一件好事。如果您需要一个带有图像和标题的按钮,那么请务必创建一个 UIButton 的子类来执行您想要的操作。你这样做一次,然后在任何你想要的地方使用它。另一种方法是在您想要这种外观的任何地方使用堆叠的重复按钮。

      【讨论】:

        【解决方案3】:

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

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

        使用这种方式你不需要自己处理高亮属性的变化。

        【讨论】:

          猜你喜欢
          • 2015-02-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-01
          • 2012-01-05
          相关资源
          最近更新 更多