sab*_*ius 9 widget widgetkit swiftui ios14
我为我的应用程序准备了几个 iOS14 主屏幕小部件,并将它们全部返回,WidgetBundle
如下所示:
@main
struct WidgetsBudle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
Widget1()
Widget2()
Widget3()
}
}
Run Code Online (Sandbox Code Playgroud)
Widget2
依赖于位置服务才能正常工作,但是如果用户没有授予位置权限,那么即使显示这个小部件也没有任何意义。我可以有一些逻辑涉及返回WidgetBundle
body 内的小部件吗?
小智 7
如果您想根据某种逻辑选择小部件包,您可以执行以下操作:
@main
struct WidgetLauncher {
static func main() {
if isLocationEnabled {
WidgetBundle1.main()
} else {
WidgetBundle2.main()
}
}
static var isLocationEnabled: Bool {
/// Put your logic here
true
}
}
struct WidgetBundle1: WidgetBundle {
var body: some Widget {
Widget1()
Widget2()
Widget3()
}
}
struct WidgetBundle2: WidgetBundle {
var body: some Widget {
Widget1()
Widget2()
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1823 次 |
最近记录: |