如何为 Widget 配置动态值设置 table 视图的样式?

How to style table view for Widget configuration dynamic values?

我使用 IntentConfiguration 配置了一个正常运行的小部件,以允许用户编辑小部件的显示数据。

这部分工作正常。我想要做的是设置 table 视图的样式,该视图在用户配置小部件并从动态提供的值之一中进行选择时显示。

目前看起来像:

我注意到 Home Assistant 应用程序有一些不同的样式:

看起来他们正在根据特定条件 (see here) 设置视图,但我还没有完全弄清楚它是如何工作的。 Apple 文档在这方面似乎也很少。

目前,我只为实际的小部件定义了视图,例如:

struct MyWidgetView: View {
    var entry: Provider.Entry

    var body: some View {
        Text(entry.name)
    }
}

@main
struct MyWidget: Widget {
    let kind: String = "MyWidget"

    var body: some WidgetConfiguration {
        IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider()) { entry in
            MyWidgetView(entry: entry)
        }
        .configurationDisplayName("A Widget")
        .description("Displays stuff.")
    }
}

我可以毫无问题地在 IntentHandler 中提供配置列表选项,但是如何调整 UI?

在您的 IntentHandler 中,您 return 一个 collection 的 INObject(实际上您将使用项目生成的 INObject 子类,但查看 INObject 以获得 API)。当您创建这些 objects 时,您可以传入图像 and/or 副标题,这就是您在该屏幕截图中看到的内容。