在 SwiftUI 中,不使用 WidgetBundle,可以通过 .self 来确定 Widget 的顺序。下面是一个示例:
// Widget A, Widget B, Widget C struct Content: View { var body: some View { VStack { WidgetA() WidgetB() WidgetC() } } }
在 Widget A、B、C 自定义的结构中,添加 .widgetURL() 以获取 Widget 的 URL:
struct WidgetA: View { var body: some View { Text("Widget A") .widgetURL(URL(string: "WidgetA://")) } }
struct WidgetB: View { var body: some View { Text("Widget B") .widgetURL(URL(string: "WidgetB://")) } }
struct WidgetC: View { var body: some View { Text("Widget C") .widgetURL(URL(string: "WidgetC://")) } }
然后,在 Widget 的 Info.plist 文件中,指定 URL 和 Widget 的显示名称以及 Widget 的数据提供程序:
这样,在小部件库中,Widget A、B、C 会按照它们在 ContentView 的 VStack 中添加的顺序排列。可以通过重新排序 Content View 中小部件的位置来更改它