如何解决SwiftUI iOS14 Widget-使用相同的WidgetFamily创建创建多重布局
从主屏幕添加小部件时,我可以看到Apple创建的Clock应用程序具有两个小的WidgetFamily
布局。
如何在Clock应用程序中制作两个小控件?
我看到我只能为每个WidgetFamily
创建一个布局。
解决方法
似乎您需要使用各自的视图,条目,提供者来创建单独的小部件...
以下是使用WidgetBundle
的解决方案:
- 创建单独的小部件(确保
@main
注释未未附加到任何小部件):
struct Widget1: Widget {
let kind: String = "Widget1"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind,provider: Widget1Provider()) { entry in
Widget1Entry(entry: entry)
}
.configurationDisplayName("Widget1")
.description("This is an example widget v1.")
}
}
struct Widget2: Widget {
let kind: String = "Widget2"
var body: some WidgetConfiguration {
...
}
}
...
- 为每个小部件创建自己的视图(可能还根据需要将单独的条目和提供者):
struct Widget1EntryView: View {
var entry: Widget1Entry
var body: some View {
Text("Widget1")
}
}
struct Widget2EntryView: View {
var entry: Widget2Entry
var body: some View {
Text("Widget2")
}
}
...
- 使用
WidgetBundle
提供包含小部件的捆绑包:
@main
struct WidgetsBudle: WidgetBundle {
var body: some Widget {
Widget1()
Widget2()
// add more Widgets if you want
}
}
请注意,@main
附加到WidgetsBudle
而不是窗口小部件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。