3

我正在.graphicCorner使用模板创建 ClockKit 复杂功能CLKComplicationTemplateGraphicCornerTextImage。正如 Tech Talk Developing Complications for Apple Watch Series 4中所述,应该可以组合多个不同颜色的 Text Providers。

不幸的是,我可以让它工作。

这是我的代码ComplicationController.swift

func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
    switch complication.family {
…
    case .graphicCorner:
        if #available(watchOSApplicationExtension 5.0, *) {
            let template = CLKComplicationTemplateGraphicCornerStackText()
            let firstTextProvider = CLKSimpleTextProvider(text: "first")
            firstTextProvider.tintColor = UIColor.green
            let secondTextProvider = CLKSimpleTextProvider(text: "second")
            secondTextProvider.tintColor = UIColor.red
            let thirdTextProvider = CLKSimpleTextProvider(text: "third")
            thirdTextProvider.tintColor = UIColor.blue
            template.outerTextProvider = firstTextProvider
            template.innerTextProvider = CLKTextProvider.localizableTextProvider(withStringsFileFormatKey: "STRINGFORMAT", textProviders: [secondTextProvider, thirdTextProvider])
            handler(template)
        } else {
            handler(nil)  // Fallback on earlier versions
        }

    default:
        handler(nil)
    }

}

和我的内容ckcomplication.strings

"STRINGFORMAT" = "%@ %@";

不会显示任何文字。我在这里做错了什么?我感谢任何想法或工作示例。

4

2 回答 2

1

这似乎是预期的行为,至少对于outerTextProvider

并发症忽略了文本提供者的色调。它始终将外部文本显示为白色。

外部文本提供者

不过,它适用于 innerTextProvider ,至少在这里:

case .graphicCorner:
                let graphicCorner = CLKComplicationTemplateGraphicCornerStackText()
                let metarColor = UIColor.green
                graphicCorner.outerTextProvider = CLKSimpleTextProvider(text: "EGLL")
                    graphicCorner.innerTextProvider = CLKSimpleTextProvider(text: "MVFR 27' ago")
                    graphicCorner.innerTextProvider.tintColor = metarColor ?? UIColor.white
                    let entry = CLKComplicationTimelineEntry(date: NSDate( as Date, complicationTemplate : graphicCorner)
                    timelineEntries.append(entry)

截屏

于 2019-01-21T16:19:47.480 回答
0

我遇到了同样的问题。我无法CLKTextProvider.localizableTextProvider(withStringsFileFormatKey:, textProviders: )ckcomplication.strings工作相结合。

最终在CLKTextProvider.

它需要很少的定制来满足我自己的需求,但除了它似乎对我有用之外,我现在在内环中得到了多色文本。

于 2019-02-12T17:36:51.837 回答