如何在小部件扩展中添加 5 个以上的小部件? WidgetBundle 的 widget 最大数量不能超过 5
How can I add more than 5 widgets in a widget extension? the maximum number of WidgetBundle's widget cannot exceed 5
好像WidgetBundle
有最大个数限制,超过5个就会报编译错误:Extra argument in call
.
但是我没有在任何文档中看到这样的描述,也没有其他开发者提到这个问题。
有人知道吗?
@main
struct WidgetsBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget1()
Widget2()
Widget3()
Widget4()
Widget5()
Widget6() // Extra argument in call
}
}
我在 WidgetBundle
中遇到了同样的错误。如果您有兴趣为该应用程序提供 5 个以上的小部件,则有一个解决方法:
@main
struct WidgetKitExtension: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget1()
Widget2()
Widget3()
Widget4()
Bundle2().body
}
}
struct Bundle2: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget5()
Widget6()
Widget7()
}
}
基本上,您创建第二个 WidgetBundle
并在第一个中使用它。我已验证此功能自 Xcode 12.0.1
起有效
虽然还没有测试提交包含超过 5 个小部件的应用程序。
好像WidgetBundle
有最大个数限制,超过5个就会报编译错误:Extra argument in call
.
但是我没有在任何文档中看到这样的描述,也没有其他开发者提到这个问题。
有人知道吗?
@main
struct WidgetsBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget1()
Widget2()
Widget3()
Widget4()
Widget5()
Widget6() // Extra argument in call
}
}
我在 WidgetBundle
中遇到了同样的错误。如果您有兴趣为该应用程序提供 5 个以上的小部件,则有一个解决方法:
@main
struct WidgetKitExtension: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget1()
Widget2()
Widget3()
Widget4()
Bundle2().body
}
}
struct Bundle2: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget5()
Widget6()
Widget7()
}
}
基本上,您创建第二个 WidgetBundle
并在第一个中使用它。我已验证此功能自 Xcode 12.0.1
虽然还没有测试提交包含超过 5 个小部件的应用程序。