【问题标题】:tintColor not working on watchOS 5 complicationtintColor 不适用于 watchOS 5 复杂功能
【发布时间】:2018-12-25 22:02:53
【问题描述】:

对于 watchOS 5 和 Apple Watch Series 4,我遇到了一些无法正确使用 tintColor 的问题。相反,它们只显示白色文本。同一张脸上的其他第 3 方并发症显示了它们的颜色。

除了在图形圆形复杂功能的leadingTextProvidertrailingTextProvider 上使用tintColor 之外,还有什么技巧吗?

我正在使用 Objective-C 以防万一。

【问题讨论】:

  • 似乎只有原生的并发症才能有自己的颜色。因此,如果不使用私有 API,就无法使用彩色文本。你说有第三方并发症显示了他们的颜色。你能说出一个吗?
  • 我知道该怎么做。看看我的新帖子。

标签: watchos apple-watch-complication watchos-5


【解决方案1】:

你可以用CLKSimpleTextProvider 做到这一点,诀窍是你不能用CLKTextProvider 做到这一点。

例如,

t.leadingTextProvider =  {
    let t = CLKSimpleTextProvider(text: String(6))
    t.tintColor = .red

    return t
}()

有效

t.leadingTextProvider =  {
    let t = CLKTextProvider(format: String(6))
    t.tintColor = .red

    return t
}()

不起作用。

In Apple's Documents of CLKTextProvider,上面写着

您不会自己创建此类的实例。相反,您可以根据您尝试创建的文本数据类型来创建适当子类的实例。您还可以使用 textProviderWithFormat: 类方法创建由格式字符串和来自其他文本提供程序的数据构造的通用文本提供程序。

此外,您还需要一个允许着色的表盘,就像我的一样。

Xcode 11.0 (11A420a) watchOS 模拟器 6.0

【讨论】:

    【解决方案2】:

    您是否有可能错误地初始化了您的UIColor?能出示一下相关代码吗?

    一个常见的错误是使用整数(例如 0-255)作为 UIColor 的 RGB 值(请参阅 this question)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      相关资源
      最近更新 更多