Swift iPlaceHolder修改器不可用且无法在小部件工具包中使用+;迅捷
我正在关注FrommWWDC2020中的小部件代码,在第一部分中,他们提到使用新的占位符api和Swift iPlaceHolder修改器不可用且无法在小部件工具包中使用+;迅捷,swift,swiftui,widgetkit,wwdc,Swift,Swiftui,Widgetkit,Wwdc,我正在关注FrommWWDC2020中的小部件代码,在第一部分中,他们提到使用新的占位符api和.isPlacholder。因此,我尝试在我的小部件中实现它,如下所示: 结构占位符视图:视图{ var body:一些观点{ RandomWidgetView(书籍:testBook) .isPlaceholder(正确) } } 但是,我得到的错误类型为“RandomWidgetView”的值没有成员“isPlaceholder”。谷歌搜索后,我发现: 结构占位符视图:视图{ var body:
.isPlacholder
。因此,我尝试在我的小部件中实现它,如下所示:
结构占位符视图:视图{
var body:一些观点{
RandomWidgetView(书籍:testBook)
.isPlaceholder(正确)
}
}
但是,我得到的错误类型为“RandomWidgetView”的值没有成员“isPlaceholder”
。谷歌搜索后,我发现:
结构占位符视图:视图{
var body:一些观点{
RandomWidgetView(书籍:testBook)
.已编辑(原因:。占位符)
}
}
但是,这不会创建正确的占位符,而是完全删除其中的视图
我是缺少导入还是自wwdc以来已更改?如何创建正确的占位符?在iOS 14 beta 3中,初始的
.isPlaceholder(:)
API已更改为。已编辑(原因:)
API,这就是编译器无法识别isPlaceholder
调用的原因
下面是如何正确使用它:在您的小部件扩展中,您应该有这样的代码,正如我这里所说的,这只是默认的小部件实现。如果您将
.redated(原因:。占位符)
放在您拥有提供程序的视图中。条目
应提供您要查找的结果
// other TimelineProvider code...
struct RandomWidgetViewEntryView: View {
var entry: Provider.Entry
var body: some View {
Text(entry.date, style: .time)
.redacted(reason: .placeholder)
}
}
@main
struct RandomWidgetView: Widget {
let kind: String = "RandomWidgetView"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider()) { entry in
RandomWidgetViewEntryView(entry: entry)
}
.configurationDisplayName("My Widget")
.description("This is an example widget.")
}
}