watchOS CLKTimeIntervalGaugeProviderを使ってみる
CLKTimeIntervalGaugeProvider
Documenより(DeepLで翻訳)
時間間隔を追跡するゲージ。
Complication用の部品です。
GaugeProviderを持つComplicationで使用出来ます。
指定した開始時間から終了時間に向かって、現在位置が移動します。
Complicationの更新は不要です。
指定すれば、勝手に動きます。
Example
CLKTimeIntervalGaugeProvider.ringです。
ゲージ内の丸が移動していきます。
ソースコード
現在時刻+15秒後に開始。開始から60秒で終了。
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) { switch complication.family { case .graphicCorner: let lowTempText = CLKSimpleTextProvider(text: "S") lowTempText.tintColor = UIColor.cyan let highTempText = CLKSimpleTextProvider(text: "E") highTempText.tintColor = UIColor.red let currentTempText = CLKSimpleTextProvider(text: "-") let timeColors = [UIColor.cyan, UIColor.yellow, UIColor.red] let timeColorLocations = [0.0, 0.6, 1.0] let timeGasugeProvider = CLKTimeIntervalGaugeProvider(style: .ring, gaugeColors: timeColors, gaugeColorLocations: timeColorLocations as [NSNumber], start: Date() + 15, end: Date() + 75) let cornerTemplate = CLKComplicationTemplateGraphicCornerGaugeText() cornerTemplate.gaugeProvider = timeGasugeProvider cornerTemplate.leadingTextProvider = lowTempText cornerTemplate.trailingTextProvider = highTempText cornerTemplate.outerTextProvider = currentTempText let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate) handler(entry) default: handler(nil) } }
memo
継続して使用するには、Complication更新、アプリから再度時間を指定する必要があります。