🔍
SwiftUI でCanvas Preview 実行中かどうかを判定する
SwiftUI の開発している時、Xcode のCanvas でPreview を表示します。
開発中にView の状態を変えたい場合、Preview 実行中かどうかを判定できると便利です。
Preview 実行中かどうかを判定する
Preview 実行中かどうかは、以下のコードで判定できます。
func isPreview() -> Bool {
return ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1"
}
Preview 実行中なら任意の処理を行う
例えば、初期状態でアラートを表示する仕様のView があるとします。
@State private var showingAlert = Bool(true)
プレビューの時だけ、アラートを非表示にできます。
.onAppear() {
if isPreview() {
showingAlert = false
}
}
所感
View を細かく分割するほどでもないという時に、開発中に一時的に使うのがいいのかなと思いました。
プレビューをいい感じにする方法には、今回の判定処理を使う方法の他に、PreviewProvider でView を初期化する際に初期値を渡す方法があります。
Discussion