iOS WatchOS5 - Как поддержать несколько семейств усложнений для часового приложения?
У меня есть одно усложнение, работающее для моего приложения Apple Watch, и я хотел бы добавить второй стиль. Я выставил очень простой прототип, но не вижу его доступным для выбора на циферблате. Поэтому я пытаюсь устранить проблему:
Могу ли я поддержать в моем приложении более одной сложности? Могу ли я иметь одновременно две осложнения на циферблате? (Или это либо случай, либо, если он у меня есть, iOS не отобразит второй?) Я попытался добавить новый циферблат, но он мне не позволил.
Является CLKComplicationTemplateModularSmallRingText
действительный шаблон для ModularSmall
тип осложнения?
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
if complication.family == .modularSmall {
let template = CLKComplicationTemplateModularSmallRingText()
template.ringStyle = .open
template.fillFraction = 0.3
let testProvider = CLKSimpleTextProvider(text: "TST", shortText: "S")
sleep.tintColor = UIColor.green
template.textProvider = testProvider
template.tintColor = UIColor.green
let entry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)
// Pass the entry to ClockKit.
handler(entry)
}
else if complication.family == .graphicRectangular {
let template = CLKComplicationTemplateGraphicRectangularLargeImage()
//this complication works...
}
Шаблон местозаполнения сейчас такой же:
func getPlaceholderTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
// Pass the template to ClockKit.
if complication.family == .modularSmall {
let template = CLKComplicationTemplateModularSmallRingText()
//...
Я вижу одну ошибку в файле заполнителя усложнения (но я тестирую на 44-мм устройстве) - исправлю и посмотрим, что происходит. Я возвращаю неправильное изображение или неправильный тип шаблона для модульной сложности? Я хочу круглое кольцо
1 ответ
Оказывается, я был введен в заблуждение документацией Apple. Мне нужно было использовать усложнение GraphicCircular (новое в WatchOS5), а не модульное (старые циферблаты)
func circularTemplate() -> CLKComplicationTemplateGraphicCircularOpenGaugeSimpleText{
let template = CLKComplicationTemplateGraphicCircularOpenGaugeSimpleText()
let gauge = CLKSimpleGaugeProvider(style: .ring, gaugeColor: UIColor.green), fillFraction: 0.3)
template.gaugeProvider = gauge
let random = arc4random() % 999
let middle = CLKSimpleTextProvider(text: "4.5", shortText: "4")
middle.tintColor = kRGBColorFromHex(0x657585)
template.tintColor = kRGBColorFromHex(0x657585)
template.centerTextProvider = middle
let bottom = CLKSimpleTextProvider(text: "-\(random)", shortText: "1..")
template.bottomTextProvider = bottom
return template
}
Новый стиль: