CLKComplication tintColor不工作

时间:2015-10-11 19:22:02

标签: uikit apple-watch watch-os-2 watch-os clockkit

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

这是我的代码,包含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色彩的问题,但我没有找到任何东西,希望你能帮忙!

3 个答案:

答案 0 :(得分:9)

不幸的是,这里的答案是误导性的...我拒绝接受“只有灰色可用”作为答案,所以实验开始了:

enter image description here

是的,这是我的应用程序运行全身颜色和白色文本的身体。以下是相关代码:

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

不要......我不知道为什么这个甚至有效,但它确实闻起来像个臭虫。可能是色彩空间,可能是黑客,......我们凡人永远不会现在。

答案 1 :(得分:7)

对于公共watchOS2的并发症,您应该了解其他重要的变化。

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

  2. 除了设计为着色的元素外,您无法为复杂化中的所有元素自定义色调。例如,使用ModularLargeTallBodyModularLargeStandardBody您可以仅为标题文本提供程序自定义色调。其他元素的颜色将被忽略,并将显示为灰色。

  3. 如果您将tintColor提供给模板本身,它会被用作点击反馈颜色(这完全是由Apple记录的错误),并且它还会使并发复杂的元素变得明亮白色而不是灰色。

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

答案 2 :(得分:4)

并发症的色彩目前仅用于两个地方:

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

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