TimelineProviderContext Structure

TimelineProviderContext

包含如何渲染小组件的详细信息的对象,包括其规格和是否出现在小组件库中。

定义

  1. struct TimelineProviderContext

概述

当请求一个widget的时间线时,WidgetKit会传递给TimelineProvider一个上下文对象,其中包括关于widget如何出现的细节。

这些细节包括

  • 小组件的大小规格: systemSmall, systemMedium, 或 systemLarge.
  • 小组件的大小(以CGSize为单位)。
  • 小组件可能出现的环境变量(Variants of the environments)。
  • 小组件是否在小组件图库中作为预览显示(preview in widget gallery)。

如果您的小组件需要时间生成资产,或依赖于它们渲染的特定环境,您可以使用环境变量提前生成这些资产。

一些需要考虑的常见环境属性包括::

  • .colorScheme,在这里你使用不同的资产进行明暗方案。
  • .displayScale,你的widget可能会同时出现在macOS设备上的@1x和@2x显示中。

为了在环境变化时做出响应,WidgetKit可能会提前渲染widget的视图。例如,WidgetKit会同时渲染widget的浅色和深色版本,所以如果配色方案发生变化,正确的版本会立即可用。

Topics

准备预览内容 (Preparing Preview Content)

  • let isPreview: Bool
    • 表示小部件何时出现在小部件图库中的布尔值。

访问尺寸属性 (Accessing Size Attributes)

  • let family: WidgetFamily

    • 用户配置的小部件系列:small、medium、large。
  • let displaySize: CGSize

    • 小组件的大小,以 CGSize 为单位。

访问环境变化 (Accessing Environment Variations)

  • let environmentVariants: TimelineProviderContext.EnvironmentVariants

    • 小组件出现时可能设置的所有环境值。
  • struct EnvironmentVariants

    • 一个包含所有可能出现小组件的环境的结构。