【发布时间】:2020-11-24 12:35:03
【问题描述】:
我想为每个小部件尺寸(即小、中、大)创建不同的布局。如何根据小部件的大小对代码进行分支?
【问题讨论】:
标签: ios swift swiftui ios14 widgetkit
我想为每个小部件尺寸(即小、中、大)创建不同的布局。如何根据小部件的大小对代码进行分支?
【问题讨论】:
标签: ios swift swiftui ios14 widgetkit
WidgetFamily (Apple Documentation) 枚举作为WidgetKit 的一部分将允许您在视图中切换各种大小并进行相应调整。将此设置为 @Environment 变量并打开可用案例:
.systemSmall.systemMedium.systemLargestruct WidgetView : View {
@Environment(\.widgetFamily) var family
@ViewBuilder
var body: some View {
switch family {
case .systemSmall:
Text("Small")
case .systemMedium:
Text("Medium")
case .systemLarge:
Text("Large")
default:
Text("Some other WidgetFamily in the future.")
}
}
}
【讨论】:
@SwiftUI.Environment(\.widgetFamily) var family
.systemMedium,有什么想法吗?
除了接受的答案之外,在您的 Provider 类方法(getTimeline、getSnapshot 和占位符)中,您会得到一个 context 对象,它有一个 family 成员变量。
family 可以是以下三种小部件尺寸之一:.systemSmall、.systemMedium 和 .systemLarge
Apple 的official documentation。
【讨论】:
context 的家庭可以工作,并且接受的答案方法不