LoginSignup
6
5

EmptyViewはレイアウトに一切影響しない(SwiftUI)

Last updated at Posted at 2024-02-18

はじめに

SwiftUIにおいて EmptyView() がレイアウトに影響を与えないか気になったので、検証しました。

環境

  • OS: macOS Sonoma 14.2.1 (23C71)
  • Swift: 5.9.2
  • シミュレータ: iPhone 15 Pro Max (17.2)

検証コード

以下のコードを実行して検証しました。
VStackspacing16 を指定したので、もしレイアウトに影響を与えるなら Text 同士の間隔が大きくなるなどするはずです。

ContentView.swift
import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack(spacing: 16) {
            Text("Foo")

            Text("Foo")

            EmptyView()

            Text("Foo")

            EmptyView()
                .border(.red)

            Text("Foo")

            EmptyView()
                .frame(height: 8)
                .border(.blue)

            Text("Foo")
        }
    }
}

実行結果

検証コードの実行結果です。

EmptyView() はレイアウトに影響を与えず、 Text("Foo") が等間隔に5つ並びました。

おわりに

EmptyView はレイアウトに一切影響しないことがわかりました。
これを知っておくと、例えばオプショナルな Viewnil の代わりに EmptyView() を返すことで、非オプショナルにできます。

またもし EmptyView がレイアウトに影響を与えるケースがあれば、コメントなどで教えてくださると嬉しいです。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5