Échec de la prévisualisation du widget dans Xcode avec SwiftUI Preview
J'essaie de prévisualiser une vue en utilisant le contexte du widget, comme:
struct MyTasksView_Previews: PreviewProvider {
static var previews: some View {
MyTasksView(
myTasks: Fake.myTasks,
user: Fake.user,
error: ""
)
.previewContext(WidgetPreviewContext(family: .systemMedium))
}
}
Cependant, j'obtiens cette erreur lors de la tentative d'exécuter l'aperçu. Et je ne sais pas pourquoi cela se passe.
RemoteHumanReadableError: Fournisseur de prévisualisation inconnu "MyTasksView_Previews" MyApp ne contient pas de fournisseur de prévisualisation nommé "MyTasksView_Previews". Vérifiez vos paramètres de construction pour vous assurer que le fournisseur d'aperçu est compilé dans votre produit.
J'ai aussi essayé d'utiliser un simple Text(text).previewContext(WidgetPreviewContext(family: .systemMedium)), mais cela n'a pas fonctionné non plus. J'utilise le Xcode beta 5.
Dans l'application de démonstration Apple Emoji Rangers pour la WWDC 2020. Nous pouvons voir ce morceau de code pour un aperçu:
struct CharacterNameView_Previews: PreviewProvider {
static var previews: some View {
CharacterNameView(CharacterDetail.panda)
.previewContext(WidgetPreviewContext(family: .systemSmall))
}
}
Réponses
J'ai eu le même problème et je l'ai résolu en plaçant la vue dans un VStack (ou un autre conteneur).
Voici mon code qui a fonctionné:
struct WidgetViewPreviews: PreviewProvider {
static var previews: some View {
VStack {
WidgetView(entry: .mock)
}
.previewContext(WidgetPreviewContext(family: .systemSmall))
}
}
Ajoutez une Widget extensioncible et activez-la. Pour plus d'informationshttps://developer.apple.com/documentation/widgetkit/creating-a-widget-extension