针对突出显示的背景设置 UIButton 突出显示的标题文本,从而产生暗淡的文本

Posted

技术标签:

【中文标题】针对突出显示的背景设置 UIButton 突出显示的标题文本,从而产生暗淡的文本【英文标题】:Setting UIButton highlighted title text against highlighted background producing dimmed text 【发布时间】:2018-01-12 00:47:17 【问题描述】:

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

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

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

按钮子类的代码如下:

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

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

标题文本颜色的不透明度似乎

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

知道如何做才能获得预期的结果吗?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于针对突出显示的背景设置 UIButton 突出显示的标题文本,从而产生暗淡的文本的主要内容,如果未能解决你的问题,请参考以下文章

Objective C - UIButton 保持突出显示/选中,背景颜色和字体颜色在突出显示/选中时发生变化

UIButton 突出显示的背景图像未显示

突出显示时更改 UIButton 的背景颜色

突出显示/选定状态问题的 UIButton 背景颜色

目标 - 突出显示/选择C按钮时,突出显示/选择背景颜色和字体颜色

UIButton 的正常状态和突出显示状态之间的动画转换