如何为 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 副标题,这就是您在该屏幕截图中看到的内容。
我使用 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 副标题,这就是您在该屏幕截图中看到的内容。