Mit Xcode 12 können Sie die Funktionen von Canvas verwenden, um zu sehen, wie Ihr Gerätebildschirm beim Codieren in Echtzeit aussieht.
In diesem Artikel gebe ich Ihnen einige Tipps, wie Sie die nützliche Leinwand noch besser nutzen können. Wenn es gute Tipps gibt, werde ich sie nach Bedarf hinzufügen.
--Um eine Ansicht mit der Eigenschaft @EnvironmentObject anzuzeigen
Wenn Sie eine Instanz dieser Klasse in einer Ansicht mit dem Eigenschafts-Wrapper @EnvironmentObject erstellt haben, um immer auf den Wert der Eigenschaft mit @Published in der ObservableObject-Klasse aus anderen Ansichten zu verweisen, lautet die Vorschau dieser Ansicht wie folgt: Sie müssen den Modifikator .environmentObject (ClassName ()) wie in zur View-Instanz hinzufügen. Wenn dies nicht angehängt ist, wird das Klicken auf die Schaltfläche Fortsetzen nicht auf der Leinwand angezeigt und es tritt ein Fehler auf.
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.environmentObject(Manager())
}
}
Bei Strukturen mit einer Eigenschaft mit dem @ Winding-Eigenschafts-Wrapper wird diese Eigenschaft nur für den Datentyp angegeben und kein Wert zugewiesen. Zum Beispiel:
@Binding var name: String
Wenn Sie eine Vorschau einer Struktur mit solchen Eigenschaften in Canvas anzeigen möchten, tritt ein Fehler auf, selbst wenn Sie zum Zeitpunkt der Initialisierung ein geeignetes Argument eingeben. Wenn Sie in einem solchen Fall .constant () als Argument angeben, wird es wie unten gezeigt gut angezeigt. Dies ist eine Bindung in der Ansicht, die Sie verwenden können, wenn Sie einen Wert in die Ansicht einfügen möchten. Der Vorschau-Code sieht folgendermaßen aus:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView(name: .constant("Masanao Sako"))
}
}
Siehe auch Paul Hudsons Hacking with Swift. https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-constant-bindings
Wenn Sie eine Ansicht (Bildschirmteil) für eine Komponente erstellen, die in der Hauptansicht platziert werden soll, und Sie nur diese Komponentenansicht in nur Größe anzeigen möchten, anstatt die Komponentenansicht allein auf einem Bildschirm in Bildschirmgröße des Geräts anzuzeigen. Entspricht nur der Größe der Ansicht mit dem Modifikator .previewLayout (.sizeThatFits) (siehe unten).
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.environmentObject(Manager())
.previewLayout(.sizeThatFits)
}
}
Recommended Posts