watchOS CLKTimeIntervalGaugeProviderを使ってみる

CLKTimeIntervalGaugeProvider

Document

Documenより(DeepLで翻訳)

時間間隔を追跡するゲージ。

Complication用の部品です。
GaugeProviderを持つComplicationで使用出来ます。

指定した開始時間から終了時間に向かって、現在位置が移動します。
Complicationの更新は不要です。
指定すれば、勝手に動きます。

Example

CLKTimeIntervalGaugeProvider.ringです。
ゲージ内の丸が移動していきます。

開始直後

途中

終了間際

ソースコード

現在時刻+15秒後に開始。開始から60秒で終了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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更新、アプリから再度時間を指定する必要があります。

Swift

Posted by shi-n