Swift

【SwiftUI】VStack、HStack、ZStackの使い方

こんにちは、アプリ開発者のテルです!

「VStack、HStack、ZStackの使い方がわからない」とお悩みではないでしょうか?

テル

本記事ではそんな悩みを解決していきます!

本記事を読むメリット
  1. SwiftUIにおけるStackの使い方を学べる
  2. 分かりやすい解説で初心者でも理解できる

VStack、HStack、ZStackの使い方

  1. VStack・・・垂直方向にViewを並べる
  2. HStack・・・水平方向にViewを並べる
  3. ZStack・・・Viewを重ねる

VStack、HStack、ZStackの使い方を簡単にまとめると上記のようになります。

それでは、それぞれ使用例を用いて詳しく解説していきます。

VStack

VStackとは、子Viewを垂直方向に配置することができるStackViewです。

VStack(alignment: (配置方法), spacing: (子View同士の間隔)) {  // 引数は省略可
        子View1
        子View2
 }
配置方法
topLeadingtoptopTrailing
leadingcentertrailing
bottomLeadingbottombottomTrailing

使用例

struct ContentView: View {
    var body: some View {
        VStack(alignment: .center, spacing: 20) {
            Text("One")
                .frame(width: 200, height: 100, alignment: .center)
                .background(Color.red)
            Text("Two")
                .frame(width: 200, height: 100, alignment: .center)
                .background(Color.blue)
        }
    }
}

HStack

HStackとは、子Viewを水平方向に配置することができるStackViewです。

HStack(alignment: (配置方法), spacing: (子View同士の間隔)) {  // 引数は省略可
        子View1
        子View2
 }
配置方法
topLeadingtoptopTrailing
leadingcentertrailing
bottomLeadingbottombottomTrailing

使用例

struct ContentView: View {
    var body: some View {
        HStack(alignment: .center, spacing: 20) {
            Text("One")
                .frame(width: 200, height: 100, alignment: .center)
                .background(Color.red)
            Text("Two")
                .frame(width: 200, height: 100, alignment: .center)
                .background(Color.blue)
        }
    }
}

ZStack

ZStackとは、子Viewを重ねて配置することができるStack Viewです。

指定した順に下から上に描画します。

ZStack(alignment: (配置方法)) {  // 引数は省略可
        子View1
        子View2
 }
配置方法
topLeadingtoptopTrailing
leadingcentertrailing
bottomLeadingbottombottomTrailing

使用例

struct ContentView: View {
    var body: some View {
        ZStack(alignment: .center) {
            Text("One")
                .frame(width: 200, height: 100, alignment: .center)
                .background(Color.red)
            Text("Two")
                .frame(width: 150, height: 50, alignment: .center)
                .background(Color.blue)
        }
    }
}

まとめ

本記事では、SwiftUIでViewのレイアウトを組み立てる際に用いるVStack、HStack、Z Stackの使い方についてまとめました。

これらはSwiftUI開発でViewのレイアウトを組む際に、必ず用いる基礎的な部分なのでしっかりと押さえておきましょう。

最後までご覧いただきありがとうございました。ではまた!

Flutter関連の書籍を出版しました!