如何在 CLKComplicationDataSource 中为两个并发症定义数据

How to define data for two complications in CLKComplicationDataSource

所以,我对 ClockKit Complications 有点陌生,我想知道如何为两个 Complications 制作占位符模板。

到目前为止我的代码:

func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void) {
    // This method will be called once per supported complication, and the results will be cached

    let template = CLKComplicationTemplateModularLargeStandardBody()
    template.headerTextProvider = CLKTimeIntervalTextProvider(startDate: NSDate(), endDate: NSDate())
    template.body1TextProvider = CLKSimpleTextProvider(text: "Label 1", shortText: "1")
    template.body2TextProvider = CLKSimpleTextProvider(text: "Label 2", shortText: 2)

    handler(template)

}

有人能帮忙吗?

根据 complication.family:

向 return 特定并发症添加 switch 语句
func getPlaceholderTemplateForComplication(complication: CLKComplication, withHandler handler: (CLKComplicationTemplate?) -> Void) {
    // This method will be called once per supported complication, and the results will be cached
    var template: CLKComplicationTemplate? = nil
    switch complication.family {
    case .ModularSmall:
        template = nil
    case .ModularLarge:
        let modularLargeTemplate = CLKComplicationTemplateModularLargeStandardBody()
        modularLargeTemplate.headerTextProvider = CLKTimeIntervalTextProvider(startDate: NSDate(), endDate: NSDate())
        modularLargeTemplate.body1TextProvider = CLKSimpleTextProvider(text: "Label 1", shortText: "1")
        modularLargeTemplate.body2TextProvider = CLKSimpleTextProvider(text: "Label 2", shortText: "2")
        template = modularLargeTemplate
    case .UtilitarianSmall:
        template = nil
    case .UtilitarianLarge:
        let utilitarianLargeTemplate = CLKComplicationTemplateUtilitarianLargeFlat()
        utilitarianLargeTemplate.textProvider = CLKSimpleTextProvider(text: "Label 1")
        template = utilitarianLargeTemplate
    case .CircularSmall:
        let circularSmallTemplate = CLKComplicationTemplateCircularSmallRingText()
        circularSmallTemplate.textProvider = CLKSimpleTextProvider(text: "1")
        circularSmallTemplate.fillFraction = 0.5
        circularSmallTemplate.ringStyle = CLKComplicationRingStyle.Closed
        template = circularSmallTemplate
    }
    handler(template)
}