ColorAssetCatalog
此 Pod 为 asset catalogs 中的名称颜色添加对 iOS 9+ 的兼容性。
它扩展了 UIColor 并添加了新的可选初始化器:UIColor(assetśnie)
,其功能与 UIColor(named:)
相似。
这将仅在代码中起作用。在 Interface Builder 中设置的名称颜色在 iOS 9 或 10 上仍然无法工作!
示例
要运行示例项目,首先从仓库中克隆,然后在示例目录中运行 pod install
。
需求
- iOS 9+
- Xcode 9+
- Swift 4
安装
- 将
pod "ColorAssetCatalog"
添加到您的 Podfile 中 - 运行
pod install
- 将名为 Colors.xcassets 的 Asset Catalog 添加到您的项目中
- 将新复制文件阶段添加到您的目标中,以将Colors.xcassets复制到资源目的地(保持子路径为空)
备注
- 将
Colors.xcassets
复制到您的应用程序的资源目录中,将绕过苹果针对资产目录的优化。请仔细考虑这种解决方案是否适合您。 - 您可以为您的
.xcassets
文件命名其他名称:在使用UIColor(asset:)
之前,声明ColorAssetManager.shared.catalogName = "OtherName"
。 - 您可以设置包含您的资产目录的Bundle:在使用
UIColor(asset:)
或使用UIColor(asset:in:compatibleWith:)
之前设置ColorAssetManager.shared.bundle
。 - 在iOS 11+上,
UIColor(asset:)
仅调用本地的UIColor(named:)
。 - 默认情况下,颜色会懒惰加载以避免在后续使用时再次解析资产JSON。在应用程序收到内存警告时,将释放缓存的颜色。
- 您可以使用
ColorAssetManager.shared.cachingEnabled = false
禁用颜色的内存缓存。 - 支持特定于设备的颜色除手表和Mac。您可以在检查器中切换颜色集的颜色。
- 在iOS 10+上支持P3(宽色域)特定颜色。您可以在检查器中切换颜色集的颜色。
作者
Sam Rayner, http://www.samrayner.com
许可
ColorAssetCatalog可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。