如何禁用 UIButton Tint Color?
Posted
技术标签:
【中文标题】如何禁用 UIButton Tint Color?【英文标题】:How to disable UIButton Tint Color? 【发布时间】:2014-12-14 23:42:17 【问题描述】:我知道我的情况可能很少见,但在这种情况下如何禁用 UIButton 色调?
我有一个自定义的 UIButton,它具有属性标题,以帮助以不同的颜色和 alpha 显示按钮模式。
在我的自定义按钮 .m 文件中,我设置了类似的内容
[self setBackgroundImage:[self imageWithColor:[UIColor grayColor]] forState:UIControlStateSelected];
当按钮被选中时,这将使背景颜色变为灰色
然而真正的结果是这样的:
文本颜色如何变成白色,我认为这是因为 UIButtons 上的色调效果。
我是否可以将背景设置为灰色,而文本仍保持按钮选定状态下属性标题中设置的颜色?
谢谢
【问题讨论】:
您应该为正常状态和选定状态设置文本颜色,而不是属性标题。 设置按钮的背景颜色。 【参考方案1】:yourbutton = [UIButton buttonWithType:UIButtonTypeCustom];
(or)
如果您在情节提要中放置了按钮....选择按钮类型为自定义而不是系统。
【讨论】:
嗯,Xcode 10,ios 12.4 ... 不适合我。我的按钮是自定义的,在 xib 文件中手动放置和配置。【参考方案2】:您可以覆盖UIButton
子类中的setImage:forState:
并将渲染模式更改为.alwaysOriginal
。
override func setImage(_ image: UIImage?, for state: UIControlState)
let newImage = image?.withRenderingMode(.alwaysOriginal)
super.setImage(newImage, for: state)
【讨论】:
【参考方案3】:简单,只需前往资源中的图片,并将其渲染 模式设置为“原始图片”,查看下图:
【讨论】:
【参考方案4】:按照以下步骤获取结果:
首先设置UITabBar
背景颜色清除
现在把这一行放在第一页的 viewDidLoad 方法中:
[[UITabBar appearance] setTintColor:SETYOURCOLOR];
希望对你有所帮助。
【讨论】:
以上是关于如何禁用 UIButton Tint Color?的主要内容,如果未能解决你的问题,请参考以下文章
根据状态更改 UIButton 中 ImageView 的 tint 颜色
将 NavigationBar Tint/Color 更改为 Navigation Stack 中每个 ViewController 的不同值
MKUserTrackingBarButtonItem tint color IOS7 不起作用,但在 IOS 6 上起作用