获取深色风格的 UIColor

Get dark style of UIColor

我有这个 UIColor:

左颜色显示在浅色外观

正确的颜色显示在深色外观


我希望能够在设备开启时获得正确的颜色 浅色外观,

并且能够在设备处于深色外观时获得左侧颜色


我知道我可以复制它并创建另一种颜色,然后使用那个颜色,但是有没有办法从代码中获取 UIColor 变量的所有变化?谢谢

您可以使用 UIColor 方法 func resolvedColor(with traitCollection: UITraitCollection) -> UIColor 和 select 所需的特征集合:

extension UIColor {
    var dark: UIColor  { resolvedColor(with: .init(userInterfaceStyle: .dark))  }
    var light: UIColor { resolvedColor(with: .init(userInterfaceStyle: .light)) }
}

例子

let systemPurple = UIColor.systemPurple   // r 0,686 g 0,322 b 0,871 a 1,0
systemPurple.dark                         // r 0,749 g 0,353 b 0,949 a 1,0
systemPurple.light                        // r 0,686 g 0,322 b 0,871 a 1,0