2

我正在尝试使用小部件上下文预览一些视图,例如:

struct MyTasksView_Previews: PreviewProvider {
    static var previews: some View {
            MyTasksView(
                myTasks: Fake.myTasks,
                user: Fake.user,
                error: ""
            )
            .previewContext(WidgetPreviewContext(family: .systemMedium))
    }
}

但是,在尝试运行预览时出现此错误。而且,我不确定为什么会这样。

RemoteHumanReadableError:未知预览提供程序“MyTasksView_Previews” MyApp 不包含名为“MyTasksView_Previews”的预览提供程序。检查您的构建设置以确保将预览提供程序编译到您的产品中。

我也尝试使用简单的Text(text).previewContext(WidgetPreviewContext(family: .systemMedium)),但它也不起作用。我正在使用 Xcode beta 5。

在 Apple Emoji Rangers Demo App for WWDC 2020 中。我们可以看到这段代码进行预览:

struct CharacterNameView_Previews: PreviewProvider {
    static var previews: some View {
        CharacterNameView(CharacterDetail.panda)
            .previewContext(WidgetPreviewContext(family: .systemSmall))
    }
}

表情符号流浪者示例

4

3 回答 3

3

我遇到了类似的问题,我通过将 View 放在 VStack(或另一个容器)中来解决它。

这是我的有效代码:

struct WidgetViewPreviews: PreviewProvider {

  static var previews: some View {
    VStack {
      WidgetView(entry: .mock)
    }
    .previewContext(WidgetPreviewContext(family: .systemSmall))
  }
}

于 2021-01-02T08:44:17.860 回答
0

将小部件扩展添加到我的 UIKit 应用程序时,我遇到了同样的问题。

将类目标成员资格更改为小部件扩展为我解决了这个问题。

于 2021-07-02T16:46:23.847 回答
0

添加Widget extension目标,并激活它。有关更多信息 https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension

于 2020-09-03T09:51:43.517 回答