iOS WatchOS5, как настроить заголовок в усложнении GraphicRectangular?

Я хочу удалить текст из моего графического прямоугольного усложнения или установить для него пустую строку. По умолчанию это имя приложения. Я попытался установить отображаемое имя на " " в файле plist 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 {

}

person Alex Stone    schedule 07.10.2018    source источник


Ответы (1)


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

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

  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? Это хорошо ????).

person Zoë Smith    schedule 12.10.2018