我们如何获得未选中的UITabBarItem Image的默认颜色?
在整个SO中搜索仅返回更改的方法,而我想要的只是获取颜色。
任何想法?
最佳答案
据我所记得(我一年前曾研究过类似的东西),没有系统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()