将UIButton突出显示标题文本设置为突出显示的背景,生成灰色文本

时间:2018-01-12 00:47:17

标签: ios xcode uibutton

我有一个自定义的子类UIButton.type = 'System'

它嵌入在具有蓝色背景的视图中,该视图本身位于视图控制器的主视图中。

按钮背景颜色设置为白色。

button, default state

我有按钮子类的以下代码:

class CustomButton : UIButton{
@IBInspectable var highlightedBackgroundColor :UIColor?
@IBInspectable var nonHighlightedBackgroundColor :UIColor?
@IBInspectable var highlightedTitleTextColor :UIColor?
@IBInspectable var nonHighlightedTitleTextColor :UIColor?

override var isHighlighted :Bool {
    get {
        return super.isHighlighted
    }
    set {
        if newValue {
            self.backgroundColor = highlightedBackgroundColor
            self.setTitleColor(highlightedTitleTextColor, for: .highlighted)
        }
        else {
            self.backgroundColor = nonHighlightedBackgroundColor
        }
        super.isHighlighted = newValue
    }
}}

highlightedBackgroundColor设置为dark grayhighlightedTitleTextColor设置为white

因此,按下时,按钮应在灰色背景上显示白色标题文字。相反,我得到了这个:

button, pressed

看起来标题文字颜色的不透明度是< 100%;喜欢它被背景颜色或其他东西掩盖。

在IB中,我尝试调整所有绘图按钮设置,并尝试添加“状态配置”设置,除了和替代按钮子类中的setTitleColor代码;没有什么变化。

知道怎样做才能得到预期的结果吗?

1 个答案:

答案 0 :(得分:0)

如果您将按钮类型从“系统”更改为“自定义”,则应该可以使用。