UIButton 标签未显示

Posted

技术标签:

【中文标题】UIButton 标签未显示【英文标题】:UIButton label not showing 【发布时间】:2016-05-30 08:40:53 【问题描述】:

我有以下代码

let width = UIScreen.mainScreen().bounds.width    
let linkLabel = UILabel(frame: CGRect(x: 8, y: contentHeight, width: 100, height: labelHeight))
    let linkButton = UIButton(frame: CGRect(x: 108, y: contentHeight, width: width - 108, height: labelHeight))
    mainScrollView.addSubview(linkLabel)
    mainScrollView.addSubview(linkButton)
    linkLabel.text = "Link:"
    linkButton.addTarget(self, action: #selector(linkButtonPressed), forControlEvents: .TouchUpInside)
    linkButton.setTitle("http://example.com", forState: .Normal)
    linkButton.layer.borderWidth = 1.0

    mainScrollView.contentSize = CGSize(width: view.frame.width, height: contentHeight)

当视图加载时,我看到以下图片(请注意,按钮是黑色矩形):

所以标题是不可见的,但是当我点击按钮时,我可以获取它的标题属性

func linkButtonPressed(sender: UIButton) 
    print("button title = \(sender.titleLabel?.text)")

我得到了button title = Optional("http://example.com"),但无论如何按钮标题不可见。有什么建议吗?

【问题讨论】:

先试着把它变大(高)——它可能太小而无法显示文本。 “宽度”变量是多少?似乎只有几个像素。 @sschale 是的,我试过了,但没有帮助 @derdida 更新:宽度等于屏幕宽度 contentHeight = ?你对此有什么价值? 【参考方案1】:

您的按钮标题显示为白色。为按钮标题提供任何颜色。您的代码没有问题。

linkButton.setTitle("http://example.com", forState: .Normal)
linkButton.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)

【讨论】:

【参考方案2】:

你跳过了一步。您应该添加标题颜色:-

linkButton.setTitleColor(UIColor.blackColor(), forState: .Normal)

【讨论】:

以上是关于UIButton 标签未显示的主要内容,如果未能解决你的问题,请参考以下文章

使用标签处理时未正确设置 UIButton 图像

UIButton 标题标签文本未使用情节提要或以编程方式更改

Swift - 无论状态如何设置 UIButton 标题

单击选定的 UIButton 时未显示 UIButton 突出显示状态

uibutton 未显示

使用 UILabel 和 UIButton 显示用户标签