如何禁用UIButton Tint Color?

时间:2014-12-14 23:42:17

标签: ios objective-c uibutton

我知道我的情况可能很少见,但在这种情况下如何禁用UIButton色调?

我有一个自定义的UIButton,它已归属于标题,以帮助显示不同颜色和alpha的按钮模式。

enter image description here

在我的自定义按钮.m文件中,我设置了类似这样的内容

[self setBackgroundImage:[self imageWithColor:[UIColor grayColor]] forState:UIControlStateSelected];

,当选择按钮时,背景颜色会变为灰色

但实际结果如下:

enter image description here

有些文字颜色会变成白色,我认为这是因为UIButtons的色调效果。

我可以将背景显示为灰色,而文本仍保留在按钮选定状态下属性标题中设置的颜色吗?

由于

3 个答案:

答案 0 :(得分:33)

yourbutton = [UIButton buttonWithType:UIButtonTypeCustom];

                        (or)

如果你在故事板中放置了按钮....选择按钮类型作为自定义而不是系统。

答案 1 :(得分:4)

您可以覆盖setImage:forState:子类中的UIButton,并将呈现模式更改为.alwaysOriginal

override func setImage(_ image: UIImage?, for state: UIControlState) {
    let newImage = image?.withRenderingMode(.alwaysOriginal)
    super.setImage(newImage, for: state)
}

答案 2 :(得分:0)

按照以下步骤获取结果:

  • 首先设置UITabBar背景颜色以清除
  • 现在将此行放在第一页的viewDidLoad方法中:

    [[UITabBar appearance] setTintColor:SETYOURCOLOR];

希望它会对你有所帮助。