Tom*_*ina 5 uicolor uitraitcollection ios13 ios-darkmode
iOS 13 为我们带来了UIUserInterfaceLevel,可以是.base或.elevated。UIView当在黑暗模式下使用升高的级别时,系统似乎会自动调整提供的颜色。
但是,似乎没有办法在资产目录中手动指定.elevated颜色,是吗?
唯一的方法似乎是通过新的 UIColor 构造函数:
UIColor.init { (traits) -> UIColor in
traits.userInterfaceLevel == .elevated ? UIColor(named: "myColor-elevated")! : UIColor(named: "myColor")!
}
Run Code Online (Sandbox Code Playgroud)
据我所知,没有办法用颜色资源做到这一点。
当您使用系统背景和填充颜色时,iOS 会在较高级别时自动选择“下一个更高”的颜色,即.systemBackground变为.secondarySystemBackground等。