1

我目前正在尝试实现 CLKComplicationTemplateGraphicCircularClosedGaugeImage ,但由于某种原因,我的图标一直被染成蓝色。

当我更改 WatchFace 的 tintColor 时,一切似乎都以正确的方式着色。但是,当我禁用 WatchFace 上的着色时,我的图像会因某种原因变成蓝色。

我在资产目录中启用了渲染模式:alwaystemplate,因为我的图像在原始版本中只是黑色,而我在我的应用程序的其他部分对其进行了着色。

let gaugeProvider = CLKSimpleGaugeProvider(style: .fill, gaugeColor: color, fillFraction: progress)
let template = CLKComplicationTemplateGraphicCircularClosedGaugeImage(gaugeProvider: gaugeProvider, imageProvider: CLKFullColorImageProvider(fullColorImage: image))

我尝试在模板上应用 tintColor,并且在将图像传递给 ImageProvider 之前,我还尝试将 tintColor 直接应用到图像。这两个想法都不会产生预期的输出。

let gaugeProvider = CLKSimpleGaugeProvider(style: .fill, gaugeColor: color, fillFraction: progress)
let imageProvider = CLKFullColorImageProvider(fullColorImage: image)
let template = CLKComplicationTemplateGraphicCircularClosedGaugeImage(gaugeProvider: gaugeProvider, imageProvider: imageProvider)
template.tintColor = .white // this has no effect

使用alwaysTemplate作为渲染模式时,如何设置默认色调?

4

1 回答 1

2

我自己找到了解决方案。我现在将图像着色为白色并将其重新渲染为 originalImage。

let imageProvider = CLKFullColorImageProvider(fullColorImage: image.withTintColor(.white, renderingMode: .alwaysTemplate).withRenderingMode(.alwaysOriginal))
于 2020-09-07T18:36:57.047 回答