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)
        }
    }
}

まとめ

本記事では、VStack、HStack、ZStackの使い方についてまとめました。

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

▼以下では、私の実体験に基づいて「Swiftの効率的な勉強法」の具体的な手順を詳しく解説しています。ぜひ参考にしてみてください!

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

参考文献

https://developer.apple.com/documentation/swiftui/

ABOUT ME
テルプロ
東京都在住のアプリエンジニア。大学では、ソフトウェア開発の研究に取り組む。長期のエンジニアインターンシップを経て、実務スキルを磨き、現在はフリーランスエンジニアとしても活動中。メインはモバイルアプリ開発。IT関連の記事監修も行い、技術の共有と普及に励んでいます。 監修実績(レバテックフリーランス
Flutter関連の書籍を出版しました!