获取 UITabBarItem 图像的默认未选择 TintColor
Posted
技术标签:
【中文标题】获取 UITabBarItem 图像的默认未选择 TintColor【英文标题】:Getting Default Unselected TintColor of UITabBarItem Image 【发布时间】:2015-06-07 11:55:32 【问题描述】:我们如何获取未选中的 UITabBarItem Image 的默认颜色?
搜遍了SO只返回改变方法,而我想要的是只得到颜色。
有什么想法吗?
【问题讨论】:
【参考方案1】:据我记得(我在一年前研究过类似的东西)没有系统 API 可以让非活动控件的“变暗”颜色。然而,我确实对调光进行了逆向工程,使其看起来相对相似。
public extension UIColor
public func dimmedColor() -> UIColor
var hue = CGFloat(0)
var brightness = CGFloat(0)
var saturation = CGFloat(0)
var alpha = CGFloat(0)
self.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha)
brightness = max(0.0, brightness - 0.3)
return UIColor(hue: hue, saturation: 0, brightness: brightness, alpha: alpha)
本质上,调光会降低颜色的饱和度并降低亮度。这可能会导致黑色,但这可能不是您想要的。
您可以按如下方式使用它,其中tintColor
是从 UIView 或按钮或其他一些着色元素获得的:
let dimmedColor = tintColor.dimmedColor()
【讨论】:
确实有趣的答案,但它创建的版本比实际未选择的颜色更轻 嗯,我想我最终得到的亮度值与他们使用的不完全一样,你可以稍微调整一下,看看你是否更接近了。 我尝试过使用不同的色调,但这不会影响未选择的颜色。它是#929292。我需要一种方法来确定系统颜色,以预测 Apple 是否会更改默认颜色 正如我所说,据我所知,现在有办法做到这一点。您可以尝试捕获颜色,例如通过创建一个控件,让系统对其进行调暗,在图像中捕获它,然后查看颜色值。以上是关于获取 UITabBarItem 图像的默认未选择 TintColor的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITabBarItem 上设置不同的未选择图像和文本颜色