iOS WatchOS5, как настроить заголовок в услугу GraphicRectangular? - PullRequest
0 голосов
/ 08 октября 2018

Я хочу удалить текст из моего графического прямоугольного усложнения или установить его в пустую строку.По умолчанию это имя приложения.Я пытался установить отображаемое имя на "" в листе наблюдения watchKit, но это, похоже, не изменило его.

Как удалить текст из графического прямоугольного усложнения WatchOS5?

Я вижу, что есть какой-то способ получить (назначить?) CLKTextProvider, как описано здесь: https://developer.apple.com/documentation/clockkit/clktextprovider Тем не менее, это, кажется, связано с добавлением локализуемого файла строк, и я не хочу возиться с этим, если есть более простой способ получить изображение только для CLKComplicationTemplateGraphicRectangularLargeImage

    func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
        // This method will be called once per supported complication, and the results will be cached


        if complication.family == .graphicRectangular {
            let template =  GraphicTemplate()
            template.textProvider = CLKSimpleTextProvider.init(text: "")
            handler(template)
        }else {
            handler(nil)
        }
    }


class GraphicTemplate: CLKComplicationTemplateGraphicRectangularLargeImage {

}

1 Ответ

0 голосов
/ 12 октября 2018

Вам не нужно связываться с локализуемыми строками (фу).

Есть два места, где вам нужно настроить вид осложнения.

  1. Образец шаблона - это отображается для пользователя, когда он настраивает лицо и просматривает список доступных осложнений.Вы предоставляете этот образец методом getLocalizableSample(for: withHandler:) на семью осложнений, как показано в вашем вопросе.

  2. Фактическое живое осложнение, показанное на лице, которое вы предоставляете в методе getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) CLKComplicationDataSource.

В обоих местах вам нужно будет вернуть шаблон с текстовым провайдером (в противном случае вы потерпите крах во время выполнения), хотя нормально возвращать пустую строку.Это должно удалить имя приложения.

    let template = CLKComplicationTemplateGraphicRectangularLargeImage()
    template.textProvider = CLKSimpleTextProvider.init(text: "")
    template.imageProvider = CLKFullColorImageProvider(fullColorImage: myImage)
    return template

(Кстати, вы видели недавний Apple Tech Talk об осложнениях для часов os5 ? Это хорошо ?).

...