· 1 min learn
ClockKit households and templates, there are such a lot of of them. It is a little bit bit time consuming if you’re searching for the correct one.
The official ClockKit documentation on Apple’s web site is nicely written, but it surely lacks a generic overview of all the prevailing problems. I’ve created a little bit cheatsheet so that you can simplify the looking course of for the correct complication fashion.
This cheatsheet helps watchOS 5. To be able to get the template title you simply have so as to add up the names within the correct order. Normally left to proper, high to backside. Don’t fear you’ll get it. 😅
Swift pattern code is under the cheatsheet, please scroll! 👇
Be happy to proper click on and obtain the cheatsheet picture.
ClockKit code pattern in Swift
This little snippet incorporates all of the ClockKit complication households and templates. 😎
import ClockKit
class ComplicationDataSource: NSObject, CLKComplicationDataSource {
func getSupportedTimeTravelDirections(
for complication: CLKComplication,
withHandler handler: @escaping (CLKComplicationTimeTravelDirections
) -> Void) {
handler([.forward, .backward])
}
func getCurrentTimelineEntry(
for complication: CLKComplication,
withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void
) {
let date = Date()
var template: CLKComplicationTemplate!
swap complication.household {
case .circularSmall:
template = CLKComplicationTemplateCircularSmallStackText()
template = CLKComplicationTemplateCircularSmallStackImage()
template = CLKComplicationTemplateCircularSmallSimpleText()
template = CLKComplicationTemplateCircularSmallSimpleImage()
template = CLKComplicationTemplateCircularSmallRingText()
template = CLKComplicationTemplateCircularSmallRingImage()
break;
case .extraLarge:
template = CLKComplicationTemplateExtraLargeStackText()
template = CLKComplicationTemplateExtraLargeStackImage()
template = CLKComplicationTemplateExtraLargeSimpleText()
template = CLKComplicationTemplateExtraLargeSimpleImage()
template = CLKComplicationTemplateExtraLargeRingText()
template = CLKComplicationTemplateExtraLargeRingImage()
template = CLKComplicationTemplateExtraLargeColumnsText()
break;
case .modularSmall:
template = CLKComplicationTemplateModularSmallStackText()
template = CLKComplicationTemplateModularSmallStackImage()
template = CLKComplicationTemplateModularSmallSimpleText()
template = CLKComplicationTemplateModularSmallSimpleImage()
template = CLKComplicationTemplateModularSmallRingText()
template = CLKComplicationTemplateModularSmallRingImage()
template = CLKComplicationTemplateModularSmallColumnsText()
break;
case .modularLarge:
template = CLKComplicationTemplateModularLargeTable()
template = CLKComplicationTemplateModularLargeColumns()
template = CLKComplicationTemplateModularLargeTallBody()
template = CLKComplicationTemplateModularLargeStandardBody()
break;
case .utilitarianSmall:
template = CLKComplicationTemplateUtilitarianSmallFlat()
template = CLKComplicationTemplateUtilitarianSmallSquare()
template = CLKComplicationTemplateUtilitarianSmallRingText()
template = CLKComplicationTemplateUtilitarianSmallRingImage()
break;
case .utilitarianSmallFlat:
template = CLKComplicationTemplateUtilitarianSmallFlat()
case .utilitarianLarge:
template = CLKComplicationTemplateUtilitarianLargeFlat()
break;
case .graphicCorner:
template = CLKComplicationTemplateGraphicCornerCircularImage()
template = CLKComplicationTemplateGraphicCornerGaugeText()
template = CLKComplicationTemplateGraphicCornerGaugeImage()
template = CLKComplicationTemplateGraphicCornerStackText()
template = CLKComplicationTemplateGraphicCornerTextImage()
break;
case .graphicCircular:
template = CLKComplicationTemplateGraphicCircularImage()
template = CLKComplicationTemplateGraphicCircularOpenGaugeImage()
template = CLKComplicationTemplateGraphicCircularOpenGaugeRangeText()
template = CLKComplicationTemplateGraphicCircularOpenGaugeSimpleText()
template = CLKComplicationTemplateGraphicCircularClosedGaugeText()
template = CLKComplicationTemplateGraphicCircularClosedGaugeImage()
break;
case .graphicBezel:
template = CLKComplicationTemplateGraphicBezelCircularText()
break;
case .graphicRectangular:
template = CLKComplicationTemplateGraphicRectangularLargeImage()
template = CLKComplicationTemplateGraphicRectangularStandardBody()
template = CLKComplicationTemplateGraphicRectangularTextGauge()
break;
}
let entry = CLKComplicationTimelineEntry(
date: date,
complicationTemplate: template
)
handler(entry)
}
}
That’s it for now. Time is over. ⏰
Associated posts
Discover ways to use Bonjour, with UDP/TCP sockets, streams and how you can talk by way of CoreBluetooth or the watch APIs.