目次
SwiftUIのZStackとは?Spacerやpaddingとの違いを徹底解説!
SwiftUIでUIを組んでいるとよく登場する ZStack、Spacer、padding。
それぞれ見た目に「余白」や「重なり」が関係しているため、違いが分かりにくいという声も多いです。
この記事では、ZStackとSpacer/paddingの違いを初心者向けにわかりやすく解説します。
ZStackとは?
ZStackは、複数のViewを重ねて配置できるコンテナです。
上から順番にレイヤーのように重ねて表示されるのが特徴です。
この例では、「背景画像」の上に「タイトル」が重なるように表示されます。
- レイアウトを「重ねたい」ときに使う
- 中央揃えがデフォルト
Spacerとの違い
Spacerは、空白を作って要素の配置を調整するViewです。
ZStackのように「重ねる」ことはできませんが、「離す・詰める」には便利です。
このように、Spacerは空間を埋めてViewを寄せる役割を果たします。
ZStackとはそもそも目的が異なります。
paddingとの違い
paddingは、Viewの内側に余白を追加するmodifierです。
ZStackのようにViewを重ねる機能はありません。
この例では、文字の周囲に余白が追加されて、より見やすくなります。
ZStack・Spacer・paddingの比較表
機能 | ZStack | Spacer | padding |
---|---|---|---|
主な用途 | Viewの重なり | 余白の自動調整 | 余白の追加 |
構文 | 親View(Stack) | Viewとして使う | modifierとして使う |
レイアウトの制御 | 重ねる | 位置を調整する | 内側の余白を追加する |
使用頻度 | 複雑なUIで多い | 基本的なUI配置で多い | ほぼ全Viewで使用 |
使い分けのポイント
- UIを重ねたい → ZStack
- Viewの位置を調整したい → Spacer
- 見た目に余白を追加したい → padding
例えば、ZStack内にViewを置いたあと、.padding()
で余白を追加する、といった併用もよくあります。
まとめ
ZStack・Spacer・paddingはすべてSwiftUIにおいてレイアウトを支える重要な要素です。
- ZStack:重ねるレイアウトに最適
- Spacer:空白の調整に便利
- padding:Viewの見た目を整える
違いを理解し、シーンに応じて使い分けることで、見た目も操作性も整ったUIが作れるようになります。
ぜひ実際に試してみてください!