SwiftUIにおけるレイアウトシステムは、開発者がインターフェースの構造を宣言的に記述できるように設計されており、その中心にはスタックがあります。
SwiftUIでのレイアウト作成は、主にHStack
(水平スタック)、VStack
(垂直スタック)、ZStack
(重ね合わせスタック)の3種類のスタックを使って行われます。これらを組み合わせることで、複雑なUIも簡単に構築できます。
VStack(垂直スタック)
VStack
は、子ビューを垂直方向に並べます。これは、複数の要素を縦に積み重ねたい場合に使用します。例えば、テキストビューとボタンを縦に並べたい時などです。
VStack {
Text("Hello, SwiftUI!")
Button("Click Me") {
print("Button tapped")
}
}
HStack(水平スタック)
HStack
は、子ビューを水平方向に並べます。複数の要素を横に並べたい場合に便利です。例えば、アイコンとテキストを横並びにしたい時などです。
HStack {
Image(systemName: "folder")
Text("My Documents")
}
ZStack(重ね合わせスタック)
ZStack
は、子ビューを重ねて表示します。これは、ビューを重ね合わせて表示したい場合、例えば背景に画像を置き、その上にテキストを表示したい時などに使用します。
ZStack {
Image("background")
Text("Foreground Text")
}
スペーシングとアライメント
スタックでは、子ビュー間のスペーシング(間隔)やアライメント(揃え)を制御することができます。これにより、ビューのレイアウトを細かく調整することが可能です。
VStack(alignment: .leading, spacing: 20) {
Text("First Item")
Text("Second Item")
}
フレキシブルなレイアウト
SwiftUIのレイアウトシステムは非常にフレキシブルで、Spacer
やDivider
、フレーム指定、パディング指定などを組み合わせることで、望むレイアウトを簡単に実現できます。
上記以外にも様々なレイアウトを構築できます。
まとめ
SwiftUIのスタックを使ったレイアウトシステムは、直感的かつ強力で、開発者がコードのみで簡潔にUIを記述できるようにします。HStack
、VStack
、ZStack
を基本とし、これらを組み合わせることで、ほぼ無限のレイアウトパターンを作成できます。
このシステムは、SwiftUIが提供する宣言的UI構築の核心の一部であり、モダンなアプリ開発をサポートします。
コメント