Bib*_*cob 6 assets image colors swift swiftui
在我的 SwiftUI 中,View我有一个Image从资产加载的。我已将其设置foregroundColor为accentColor,我还在 asset 中将其设置为我的自定义AccentColor,该自定义将在整个应用程序中使用。
资产:
内容视图主体:
var body: some View {
Image("MyImageName")
.resizable()
.renderingMode(.template)
.foregroundColor(.accentColor)
.frame(width: 32, height: 32, alignment: .center)
}
Run Code Online (Sandbox Code Playgroud)
预览和模拟器显示右侧的图像foregroundColor。但是,当在物理设备上运行时,不知何故仍然保持手机的foregroundColor默认蓝色。accentColor
预览:
模拟器:
真实设备:
为什么会出现这种情况?如何确保AssentColor在不修改 iPhone 上任何设置的情况下,无论 iOS 版本如何,都能跨设备工作?调试详细信息:设备iOS版本为iOS 13.5.1和Xcode 12.0.1。
因此,在进一步测试时,我发现尽管accentColor可以从 获得iOS 13.0,但定制accentColor只能从 获得iOS 14.0。因此,我创建了一个扩展来accentColor手动使用 from assetiOS 13并在上面正常工作iOS 14.0。
extension Color {
static var accent: Color {
if #available(iOS 14.0, *) {
return accentColor
} else {
return Color(#colorLiteral(red: 0.5, green: 0.5, blue: 0.5, alpha: 1))
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3467 次 |
| 最近记录: |