ColorCompatibility
在 iOS 13 中,Apple 引入了许多新的系统颜色(标签、系统背景等)。这些颜色可以动态适应首选的用户界面样式,但在 iOS <13 的设备上这些颜色是不可用的。ColorCompatibility 是一个自动生成的库,它允许你将系统颜色指定为 ColorCompatibility 命名空间中的静态变量,而不是 UIColor。使用它将在 iOS 13+ 和 iOS <= 12 上都使颜色“顺利”工作。在 iOS <= 12 上,颜色默认为 Apple 的浅色模式颜色。
请注意:有些系统颜色(如 systemGray
、systemBlue
等)在 iOS 13 之前就已经存在。这个库目前不提供这些颜色的回退方案 - 你可以使用 UIColor
来访问它们。如果你有将这些颜色包含在这个库的枚举中的用例,请随时提交问题。
例如:
import ColorCompatibility
myView.backgroundColor = ColorCompatibility.label
你可以在这里了解更多有关此项目的信息。
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
。
要求
安装
CocoaPods
ColorCompatibility可通过CocoaPods获得。安装方法:简单地将以下行添加到您的Podfile中
pod 'ColorCompatibility'
Swift Package Manager
ColorCompatability作为Swift包提供。要安装,请将https://github.com/noahsark769/ColorCompatibility.git
添加为Xcode中的包依赖,版本要求>= 1.0.1,或作为另一个包的依赖项
let package = Package(
dependencies: [
.package(url: "https://github.com/noahsark769/ColorCompatibility.git", ...)
]
)
如果您不想使用CocoaPods或SPM,建议您直接将ColorCompatibility.swift
代码复制粘贴到您的项目中。它只有一个文件
备注
当您的应用程序不支持iOS 12,并将UIColor
替换为ColorCompatibility
时,不能保证所有的颜色都以相同方式行为:例如,在iOS 13中,系统颜色在其处于“提升”上下文(如模态显示的视图控制器背景色)时,适应不同的显示。有关提升颜色的更多信息,请参阅黑暗模式人机界面指南。
作者
Noah Gilmore,https://noahgilmore.com/blog
许可协议
ColorCompatibility 在 MIT 许可协议下提供。有关更多信息,请参阅 LICENSE 文件。
贡献
如果您发现存在问题,请通过 GitHub 的问题标签进行报告。我们乐于接受 pull requests。您可以在 Twitter 上联系我(https://twitter.com/noahsark769)。请勿提交更新库以包括在 iOS 13 之前就有的颜色(如 systemGray
,systemBlue
等)的 pull requests,除非您先在问题中讨论您的用例。
如果您的问题或 pull requests 未得到我的回应,请随时 @noahsark769 或在 Twitter 上提及我!