在 UIButton 上设置图像和标题

Posted

技术标签:

【中文标题】在 UIButton 上设置图像和标题【英文标题】:Set both image and title on UIButton 【发布时间】:2015-03-08 22:47:32 【问题描述】:

我正在尝试以编程方式在按钮的顶部设置图像,在其下方设置标题,而不使用背景图像。我知道以前有人问过这个问题,并且我尝试过为标题设置负左插图和负顶部插图,我已经明确定义了字体,但似乎没有任何效果。如果我注释掉 setImage,上面的代码会很好地设置标题,但如果我不注释掉,标题就会消失。我错过了什么?

    // Add menu button
    let buttonImage = UIImage(named: "cheeseburger.png")
    let button = CategoryButton.buttonWithType(.Custom) as UIButton
    button.frame = CGRectMake(10, 10, 100, 140)

    button.setImage(buttonImage, forState: .Normal)
    button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 40, 0)

    button.setTitle("Cheeseburger", forState: .Normal)
    button.titleLabel!.font = UIFont(name: "Helvetica", size: 12)
    button.setTitleColor(UIColor.whiteColor(), forState: .Normal)
    button.titleEdgeInsets = UIEdgeInsetsMake(110, 0, 0, 0)

    categoryView.addSubview(button)

【问题讨论】:

【参考方案1】:

图像将标题推向右侧。尝试使用 left: -200, -300, -400... 。这应该使文本可见。我也遇到了同样的问题,用left玩了一下就解决了。

【讨论】:

【参考方案2】:

在界面生成器上将按钮类型从自定义设置为系统!这对我有用!

【讨论】:

【参考方案3】:

我尝试了很多方法来做到这一点。如果您在情节提要中构建界面并且知道标题和图像永远不会改变,您可以调整图像和标题插图直到看起来正确。但是对于以编程方式构建按钮,或在运行时更改标题/图像,我无法找到一致的公式。

最终,我创建了一个自定义按钮类并重写了 layoutSubviews 函数来自己添加图像和标题。

如果您搜索这样的解决方案,您会发现很多示例,并且我相信您会找到一个可以适应您的需求的示例。

【讨论】:

如果您发布了一些您认为适合您需要的内容,将会很有帮助

以上是关于在 UIButton 上设置图像和标题的主要内容,如果未能解决你的问题,请参考以下文章

如何创建具有清晰背景的按钮

UIButton 动作

在 UIButton 上设置图像和标题

Iphone UIButton 背景颜色

使用 UIButton 进行触摸检测

UIButton的界面状态