如何在小部件扩展中添加 5 个以上的小部件?WidgetBundle 的小部件的最大数量不能超过 5

qiz*_*qiz 1 ios widgetkit swiftui

好像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
    }
}
Run Code Online (Sandbox Code Playgroud)

sab*_*ius 7

我在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()
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,您创建第二个WidgetBundle并在第一个中使用它。我已经证实这有效Xcode 12.0.1

还没有测试过提交超过 5 个小部件的应用程序。

  • 提交的内容已获得 Apple 批准。 (5认同)