我们如何获得未选中的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()

10-08 14:54