如何在 CLKRelativeDateTextProvider 旁边添加文本
Posted
技术标签:
【中文标题】如何在 CLKRelativeDateTextProvider 旁边添加文本【英文标题】:How to have Text next to 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 上看到了实现这一点的其他复杂情况
【问题讨论】:
【参考方案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 是唯一的好方法...
【讨论】:
以上是关于如何在 CLKRelativeDateTextProvider 旁边添加文本的主要内容,如果未能解决你的问题,请参考以下文章
如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?