watchOS Complication Graphic Corner
Apple Document
Developing Complications for Apple Watch Series 4
Graphic Corner
5種類
- CLKComplicationTemplateGraphicCornerCircularImage
- CLKComplicationTemplateGraphicCornerGaugeImage
- CLKComplicationTemplateGraphicCornerGaugeText
- CLKComplicationTemplateGraphicCornerStackText
- CLKComplicationTemplateGraphicCornerTextImage
CLKComplicationTemplateGraphicCornerGaugeText
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicCorner:
let lowTempText = CLKSimpleTextProvider(text: "52")
lowTempText.tintColor = UIColor.cyan
let highTempText = CLKSimpleTextProvider(text: "89")
highTempText.tintColor = UIColor.red
let currentTempText = CLKSimpleTextProvider(text: "72")
let weatherColors = [UIColor.cyan, UIColor.yellow, UIColor.red]
let weatherColorLocations = [0.0, 0.6, 1.0]
let cornerTemplate = CLKComplicationTemplateGraphicCornerGaugeText()
let weatherGaugeProvider = CLKSimpleGaugeProvider(style: .ring,
gaugeColors: weatherColors,
gaugeColorLocations: weatherColorLocations as [NSNumber],
fillFraction: 0.7)
cornerTemplate.gaugeProvider = weatherGaugeProvider
cornerTemplate.leadingTextProvider = lowTempText
cornerTemplate.trailingTextProvider = highTempText
cornerTemplate.outerTextProvider = currentTempText
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate)
handler(entry)
default:
handler(nil)
}
}
現在値表現
8行目:外側表示テキスト
16行目:リング位置
外側表示テキストとリング位置に現在値を表示する場合は、両方に設定する必要がある
CLKSimpleGaugeProvider style .ring
CLKSimpleGaugeProvider style .fill
CLKComplicationTemplateGraphicCornerStackText
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicCorner:
let outerTextProvider = CLKSimpleTextProvider(text: "Outer")
outerTextProvider.tintColor = UIColor.white
let innerTextProvider = CLKSimpleTextProvider(text: "Inner")
innerTextProvider.tintColor = UIColor.orange
let cornerTemplate = CLKComplicationTemplateGraphicCornerStackText()
cornerTemplate.outerTextProvider = outerTextProvider
cornerTemplate.innerTextProvider = innerTextProvider
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate)
handler(entry)
default:
handler(nil)
}
}
CLKComplicationTemplateGraphicCornerCircularImage
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicCorner:
let imageProvider = CLKFullColorImageProvider(fullColorImage: UIImage(named: "kumonosu")!)
let cornerTemplate = CLKComplicationTemplateGraphicCornerCircularImage()
cornerTemplate.imageProvider = imageProvider
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate)
handler(entry)
default:
handler(nil)
}
}
CLKComplicationTemplateGraphicCornerGaugeImage
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicCorner:
let imageProvider = CLKFullColorImageProvider(fullColorImage: UIImage(named: "kumonosu44")!)
let lowTempText = CLKSimpleTextProvider(text: "52")
lowTempText.tintColor = UIColor.cyan
let highTempText = CLKSimpleTextProvider(text: "89")
highTempText.tintColor = UIColor.red
let weatherColors = [UIColor.cyan, UIColor.yellow, UIColor.red]
let weatherColorLocations = [0.0, 0.6, 1.0]
let weatherGaugeProvider = CLKSimpleGaugeProvider(style: .ring,
gaugeColors: weatherColors,
gaugeColorLocations: weatherColorLocations as [NSNumber],
fillFraction: 0.7)
let cornerTemplate = CLKComplicationTemplateGraphicCornerGaugeImage()
cornerTemplate.imageProvider = imageProvider
cornerTemplate.gaugeProvider = weatherGaugeProvider
cornerTemplate.leadingTextProvider = lowTempText
cornerTemplate.trailingTextProvider = highTempText
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate)
handler(entry)
default:
handler(nil)
}
}
CLKComplicationTemplateGraphicCornerTextImage
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
switch complication.family {
case .graphicCorner:
let imageProvider = CLKFullColorImageProvider(fullColorImage: UIImage(named: "kumonosu44")!)
let textProvider = CLKSimpleTextProvider(text: "Text")
let cornerTemplate = CLKComplicationTemplateGraphicCornerTextImage()
cornerTemplate.imageProvider = imageProvider
cornerTemplate.textProvider = textProvider
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: cornerTemplate)
handler(entry)
default:
handler(nil)
}
}










