Как определить данные для двух осложнений в CLKComplicationDataSource

Итак, я новичок в ClockKit 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)

}

Кто-нибудь может помочь?


person Frodo    schedule 30.10.2015    source источник


Ответы (1)


Добавьте оператор switch, чтобы вернуть конкретное усложнение на основе complication.family:

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)
}
person Community    schedule 28.11.2015