目次
SwiftUIのSpacerとpaddingの違いとは?
SwiftUIでレイアウトを組んでいると、「Spacerとpaddingってどう違うの?」と感じたことはありませんか?
見た目は似ていますが、使い方や目的は大きく異なります。
この記事では、初心者でも分かるように、Spacerとpaddingの違いを具体例と一緒に比較していきます。
Spacerとは?
Spacerは空白(余白)を自動で埋めてくれるViewです。
主に HStack
や VStack
の中で使われ、Viewの間隔を広げたり、要素の位置を調整したりする時に使います。
この例では、Textが左右のSpacerによって中央に表示されます。
paddingとは?
paddingはViewの内側に余白を追加する修飾子(modifier)です。
指定した方向にスペースを設けることで、見た目の調整やタップ領域の拡大ができます。
この例では、テキストの周囲にスペースが入り、少しゆとりのある表示になります。
Spacerとpaddingの違い【比較表】
項目 | Spacer | padding |
---|---|---|
使い方 | Viewとして使う | modifier(修飾子)として使う |
目的 | 自動で空白を調整 | 指定した分の余白を追加 |
使用場所 | Stack内で使う | どこでも使える |
可変性 | 空間に応じて伸び縮みする | 基本的に固定(指定量) |
レイアウトへの影響 | 他のViewの位置に影響 | Viewのサイズが大きくなる |
使い分けの実例
✅ ボタンを右寄せにしたい時(Spacer)
✅ テキストに余白を追加したい時(padding)
よくあるミス・注意点
- Spacerは高さがない → VStackで使う場合は
.frame(height:)
で明示的に高さ指定が必要です。 - paddingのつけすぎ注意 → Viewのサイズが不必要に大きくなる場合があります。
Spacerとpaddingの併用例
Spacerとpaddingは、同時に使うことでより柔軟なレイアウト調整が可能です。
ここでは、ボタンを右下に配置しつつ、少し内側に寄せたいという場面を例にします。
このコードでは、以下のようなレイアウトになります:
- Spacer() で画面下&右に寄せる
- padding(.trailing, 16) でボタンを右端から少し内側に寄せる
- padding(.bottom, 16) で画面下との間隔を調整
このように、「大きな空白はSpacer、細かな調整はpadding」という使い分けが便利です。
まとめ
Spacerとpaddingは、どちらも余白を作る手段ですが、役割が異なります。
- Spacer:レイアウト調整用の空白を作るView
- padding:Viewの内側に余白を設ける修飾子
どちらも正しく使い分けることで、SwiftUIのUI設計がより快適になります。
ぜひ実際のプロジェクトで試してみてください!