TimelineProviderContext Structure
TimelineProviderContext
包含如何渲染小组件的详细信息的对象,包括其规格和是否出现在小组件库中。
定义
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
- 一个包含所有可能出现小组件的环境的结构。