CLKComplication tintColor 不工作

CLKComplication tintColor not working

我正在尝试更改手表应用程序复杂功能(模块化大高体)中的文本颜色,但无论我做什么,文本都保持白色。

这是我的代码,在包含 tintColor 的行中,我已经将它们放在一起并逐一尝试了。

let secondTemplate = CLKComplicationTemplateModularLargeTallBody()
secondTemplate.tintColor = UIColor.greenColor()
secondTemplate.headerTextProvider.tintColor = UIColor.greenColor()
secondTemplate.bodyTextProvider.tintColor = UIColor.greenColor()
secondTemplate.headerTextProvider = CLKSimpleTextProvider(text: location.uppercaseString)
secondTemplate.bodyTextProvider = CLKSimpleTextProvider(text: "It's 4:20")
let secondEntry = CLKComplicationTimelineEntry(date: dateOf420, complicationTemplate: secondTemplate)
entries.append(secondEntry)

我已经查找了涉及 CLKComplication 色调颜色的问题,但没有找到任何内容,希望您能提供帮助!

并发症中的色调目前仅在两个地方使用:

  • 设置为“多色”时的模块化面部
  • 实用面孔

在其他地方,并发症将使用面部的色调。

关于 public watchOS2 并发症的色调颜色,您还应该了解其他重要变化。

  1. 您无法为 Utility Face 自定义色调。只有多色模块可以着色。

  2. 您不能为复杂功能上的所有元素自定义色调,设计为着色的元素除外。例如,使用 ModularLargeTallBodyModularLargeStandardBody 您可以仅为 header 文本提供程序自定义色调。元素的其他色调将被忽略并显示为灰色。

  3. 如果你把tintColor给模板本身呢,它会被用作点击反馈颜色(Apple文档中完全错误),它也会使元素不着色复杂化为亮白色而不是灰色。

IMO 是合理的行为,但是 Apple 的文档是不合理的。

不幸的是,这里的答案具有误导性......我拒绝将 "only gray is available" 作为答案,所以实验开始了:

是的,这是我的应用 运行 正文的全彩色和白色文本。这是相关代码:

let headerTextProvider = CLKSimpleTextProvider(text: data.headerText)
headerTextProvider.tintColor = UIColor.yellowColor() // data.headerColor

let textProvider = CLKTimeTextProvider(date: data.date)

let template: CLKComplicationTemplate

switch family {

...

case .ModularLarge:
    let textTemplate = CLKComplicationTemplateModularLargeTallBody()
    textTemplate.headerTextProvider = headerTextProvider
    textTemplate.bodyTextProvider = textProvider
    template = textTemplate

}

template.tintColor = UIColor(red: 0.99, green: 0.99, blue: 0.99, alpha: 1)
return template

不要...我不知道为什么这会起作用,但它确实闻起来像个错误。可能是色彩空间,可能是 hack,...我们凡人现在永远不会。

我的实验:

  • 只有header可以改变颜色,body会保持灰色。
  • 但如果您设置模板 tintColor,header 将更改为该 tintColor,并且 body 将更改为白色。

所以基本上你可以选择设置header的tintColor(body是灰色)或者模板的tintColor(body是白色)。