【问题标题】:How to have Text next to CLKRelativeDateTextProvider如何在 CLKRelativeDateTextProvider 旁边添加文本
【发布时间】:2021-05-13 00:20:05
【问题描述】:

我正在构建 watchOS 复杂功能,并且我想要一个计时器来倒计时我使用以下内容所做的事情:

func createUtilitarianLargeTemplate(prayer: Prayer?) -> CLKComplicationTemplate {
    let myComplicationTemplate = CLKComplicationTemplateUtilitarianLargeFlat()
    let dateProvider = CLKRelativeDateTextProvider()

    if let prayer = prayer {
        dateProvider.date = prayer.prayerTime.prayerDate
        dateProvider.calendarUnits = [.hour, .minute]
        dateProvider.relativeDateStyle = .timer
    }

    myComplicationTemplate.textProvider = dateProvider

    return myComplicationTemplate
}

但我想在UtilitarianLarge 并发症系列中的计时器旁边显示一些文本。这怎么可能,因为我无法在dateProvider 中设置文本。

我想要实现的是以下字符串:

GBT * 15:24:12

所以我想在计时器前有 "GBT * "。这怎么可能?不知何故,这一定是可能的,因为我在 Appstore 上看到了实现这一点的其他复杂情况

【问题讨论】:

    标签: ios swift watchos apple-watch-complication


    【解决方案1】:

    直到 watchOS 6 才将 init(format:_:) 添加到 CLKTextProvider。

    let myComplicationTemplate = CLKComplicationTemplateUtilitarianLargeFlat()
    let dateProvider = CLKRelativeDateTextProvider()
    
    dateProvider.date = Date()
    dateProvider.calendarUnits = [.hour, .minute]
    dateProvider.relativeDateStyle = .naturalAbbreviated
    
    let finalText = CLKTextProvider(format: "GBT * %@", dateProvider)
    
    myComplicationTemplate.textProvider = finalText
    

    对于 watchOS 5 及之前的版本,this 是唯一的好方法...

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2021-08-14
      • 2020-06-30
      • 1970-01-01
      相关资源
      最近更新 更多