在 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 上设置图像和标题的主要内容,如果未能解决你的问题,请参考以下文章