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 并发症的色调颜色,您还应该了解其他重要变化。
您无法为 Utility Face 自定义色调。只有多色模块可以着色。
您不能为复杂功能上的所有元素自定义色调,设计为着色的元素除外。例如,使用 ModularLargeTallBody
或 ModularLargeStandardBody
您可以仅为 header 文本提供程序自定义色调。元素的其他色调将被忽略并显示为灰色。
如果你把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是白色)。
我正在尝试更改手表应用程序复杂功能(模块化大高体)中的文本颜色,但无论我做什么,文本都保持白色。
这是我的代码,在包含 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 并发症的色调颜色,您还应该了解其他重要变化。
您无法为 Utility Face 自定义色调。只有多色模块可以着色。
您不能为复杂功能上的所有元素自定义色调,设计为着色的元素除外。例如,使用
ModularLargeTallBody
或ModularLargeStandardBody
您可以仅为 header 文本提供程序自定义色调。元素的其他色调将被忽略并显示为灰色。如果你把
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是白色)。