watchOS Complication Graphic Rectangular
Update
・表示に使用する盤面誤り対応。
INFOGRAPH MODULAR使用でカラー表示されます。
Modular使用すると色が盤面設定になります。
Apple Document
Developing Complications for Apple Watch Series 4
Graphic Rectangular
3種類
- CLKComplicationTemplateGraphicRectangularStandardBody
- CLKComplicationTemplateGraphicRectangularTextGauge
- CLKComplicationTemplateGraphicRectangularLargeImage
CLKComplicationTemplateGraphicRectangularStandardBody
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicRectangular:
let number = 1234
let headerProvider = CLKTextProvider(format: "header %d header", number)
let body1Provider = CLKTextProvider(format: "body1 %d body1", number)
let body2Provider = CLKTextProvider(format: "body2 %d body2", number)
let imageProvider = CLKFullColorImageProvider(fullColorImage: UIImage(named: "kumonosu54")!)
let rectangularTemplate = CLKComplicationTemplateGraphicRectangularStandardBody()
rectangularTemplate.headerTextProvider = headerProvider
rectangularTemplate.body1TextProvider = body1Provider
rectangularTemplate.body2TextProvider = body2Provider
rectangularTemplate.headerImageProvider = imageProvider
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: rectangularTemplate)
handler(entry)
default:
handler(nil)
}
}
MODULAR使用時
headerTextProvider、headerImageProviderはApple Watch盤面カスタマイズ色が反映されます。
画像にも色が付く為、画像のまま表示はされません。
CLKComplicationTemplateGraphicRectangularTextGauge
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicRectangular:
let number = 1234
let headerProvider = CLKTextProvider(format: "header %d xyz", number)
let body1Provider = CLKTextProvider(format: "body1 %d body1", number)
let imageProvider = CLKFullColorImageProvider(fullColorImage: UIImage(named: "kumonosu54")!)
let weatherGaugeProvider = CLKSimpleGaugeProvider(style: .ring, gaugeColor: .green, fillFraction: 0.4)
let rectangularTemplate = CLKComplicationTemplateGraphicRectangularTextGauge()
rectangularTemplate.headerImageProvider = imageProvider
rectangularTemplate.headerTextProvider = headerProvider
rectangularTemplate.body1TextProvider = body1Provider
rectangularTemplate.gaugeProvider = weatherGaugeProvider
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: rectangularTemplate)
handler(entry)
default:
handler(nil)
}
}
MODULAR使用時
gaugeProviderに色を設定しても反映されません。
CLKComplicationTemplateGraphicRectangularLargeImage
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicRectangular:
let number = 1234
let tectProvider = CLKTextProvider(format: "header %d xyz", number)
let imageProvider = CLKFullColorImageProvider(fullColorImage: UIImage(named: "kumonosu342x108")!)
let rectangularTemplate = CLKComplicationTemplateGraphicRectangularLargeImage()
rectangularTemplate.textProvider = tectProvider
rectangularTemplate.imageProvider = imageProvider
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: rectangularTemplate)
handler(entry)
default:
handler(nil)
}
}
MODULAR使用時
imageProviderは画像の色にはなりません。












