[SwiftUI] PreviewProviderで実行されているかを確認
確認環境
- Xcode 12.5
- iOS 14.5
SwiftUIでPreviewされているかをプログラムで確認する方法
PreviewでViewを表示している場合、環境変数のXCODE_RUNNING_FOR_PREVIEWS
の値が"1"になっています。
なので、次のように場合分けをするとプログラム上Previewで表示されているかを判別できます。
var body: some View {
if ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" {
Text("running on preview")
} else {
Text("running on not preview")
}
}
実行するとキャンバス上でこのようなViewが表示されます。
シミュレーターではこうです。
うまく切り分けられましたね。
参考
ios - How do you check if SwiftUI is in preview mode? - Stack Overflow
宣伝
インプレスR&D社より、「1人でアプリを作る人を支えるSwiftUI開発レシピ」発売中です。
「SwiftUIでアプリを作る!」をコンセプトにSwiftUI自体の解説とそれを組み合わせた豊富なサンプルアプリでどんな風にアプリ実装すればいいかが理解できる本となっています。
iOS 14対応、Widgetの作成も一章まるまるハンズオンで解説しています。
SwiftUIを学びたい方、ぜひこちらのリンクをチェックしてください!