Timeline Structure

Timeline

指定WidgetKit更新widget视图的日期的对象。

定义

  1. struct Timeline<EntryType> where EntryType : TimelineEntry

当EntryType符合TimelineEntry时可用。

概述

为了告诉WidgetKit何时更新widget的视图,TimelineProvider会生成一个时间线。

时间线包含一个时间线条目对象数组和一个刷新策略

要创建时间线条目,请声明一个符合TimelineEntry的自定义类型。每个条目都指定了您希望WidgetKit更新widget视图的日期,以及您的widget渲染视图所需的任何附加信息。

时间线条目还可以包括与同种widget的时间线中其他条目相比的相关性信息(relevance)。

WidgetKit 在考虑是否应该在智能堆栈中显示一个小组件时,会使用此相关性信息。

有关提供相关性信息的更多信息,请参阅 TimelineEntryRelevance。

时间线的刷新策略指定了WidgetKit向提供者请求新时间线的最早日期。

默认的刷新策略,即.atEnd,告诉WidgetKit在你提供的时间线条目数组中的最后一个日期之后请求新的时间线。

你也可以使用.afterDate来指示一个不同的日期,可以早于或晚于默认日期。如果您知道在您的时间线条目结束之前有一个时间点可能会改变时间线,请指定一个较早的日期。相反,如果您知道在最后一个日期之后,您的时间线在一段时间内不会改变,则指定一个较晚的日期。

或者,使用.never来告诉WidgetKit不再请求新的时间线。在这种情况下,你的应用程序使用WidgetCenter来提示WidgetKit请求一个新的时间线。

Note

WidgetKit可能不会在时间线条目的日期准确更新小组件的视图。更新可能会在以后的日期发生。

关于生成时间轴的更多信息,请参阅TimelineProvider。

Topics

创建一条时间线 (Creating a Timeline)

  • init(entries: [EntryType], policy: TimelineReloadPolicy)

    • 为WidgetKit更新widget的视图创建一个时间线。

    • EntryType符合TimelineEntry时可用。

获取时间轴属性 (Getting Timeline Properties)

  • let entries: [EntryType]

    • 一个时间轴条目数组,指定你希望WidgetKit更新widget显示的日期。
  • let policy: Timeline.ReloadPolicy

    • WidgetKit用来决定何时向时间轴提供者请求新时间轴的策略。
  • struct TimelineReloadPolicy

    • 表示WidgetKit向widget的提供者请求新时间线的最早日期的类型。

枚举 (Enumerations)

  • enum ReloadPolicy
    • 当EntryType符合TimelineEntry时可用。