我在 xcode 12 中创建了一个项目并添加了一个 WidgetKit 扩展目标。目标已创建,我只剩下一个显示时间的简单 WidgetKit 。 WidgetKit 的预览按预期工作,并且 WidgetKit 在模拟器中按预期显示。但是,如果我更改 View 以使用 List
而不是 Text
, 像这样:
struct SimpleWidgetEntryView : View {
var entry: Provider.Entry
var body: some View {
List {
Text("Something")
}
}
}
预览和模拟器都在黄色背景上显示红色的禁止进入标志:我试过把
List
在 VStack
内并使用动态列表没有任何成功。我找不到任何关于 List
的文档在 WidgetKit 中被禁止。我试过重新启动 xcode 和模拟器,清理和重建。我正在使用 xcode 12.0 beta 3。~我在尝试使用
UIView
时也遇到了这个问题包裹在 UIViewRepresentable
. View 是 LineChartView
来自图表库。~ 编辑:根据this post on the Apple developer forums无法在 WidgetKit WidgetKit 中使用 UIKit View 。 有谁知道我如何使用
List
在 WidgetKit 中?非常感谢任何帮助。谢谢
最佳答案
背景
WidgetKit View 为 静态 .
他们不支持动画、导航和用户交互 (Link
除外)。它们必须用纯 SwiftUI 编写。
WidgetKit 中不允许的 View 列表
请注意,该列表并不详尽,主要提供示例:
List
Form
ScrollView
TabView
Map
Picker
Slider
ProgressView
Link
):NavigationView
NavigationLink
UIViewRepresentable
UIViewControllerRepresentable
替代品
如果您想使用上述任何 View ,例如像
List
这样的交互式 View ,您需要从非交互式 View 中创建它 - 这里是 VStack
+ ForEach
.
关于ios - 为什么某些 View 在 WidgetKit 中显示为红色的禁止进入标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63135404/