watchOS 并发症 - 如何告诉 watchOS 更新时间线
Posted
技术标签:
【中文标题】watchOS 并发症 - 如何告诉 watchOS 更新时间线【英文标题】:watchOS Complication - How to tell watchOS to update the Timeline 【发布时间】:2017-12-18 08:01:10 【问题描述】:我为带有时间旅行的表盘编写了一个复杂功能。但是,我希望 watchOS 能够“刷新”时间线(比如每小时),以便它会删除当前时间线,然后再次调用 getTimelineEntries 以获得新的时间线。
有可能吗?谢谢。
【问题讨论】:
【参考方案1】:如果要在当前钟面的不同插槽中安装多个应用程序的复杂功能,最好调用“reloadTimelineForComplication:”来处理所有活动的复杂功能。
for (CLKComplication* complication in CLKComplicationServer.sharedInstance.activeComplications)
//NSLog(@"Reloading Timeline for Complication: %@", complication);
[CLKComplicationServer.sharedInstance reloadTimelineForComplication:complication];
来自文档:CLKComplicationServer.activeComplications:此属性包含一个 CLKComplication 对象数组,每个对象代表当前显示在钟面上的复杂功能的一个版本。此数组通常没有条目或只有一个条目,但如果您的复杂功能安装在钟面上的多个插槽中,它可能有多个条目。
【讨论】:
【参考方案2】:当你想刷新并发症数据时,你可以像这样触发刷新,
[[CLKComplicationServer sharedInstance] reloadTimelineForComplication:[[[CLKComplicationServer sharedInstance] activeComplications] firstObject]];
参考可以查看here
【讨论】:
以上是关于watchOS 并发症 - 如何告诉 watchOS 更新时间线的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中的 WatchOS 中实现 handleUserActivity?