スペーシングとアライメント

この記事は約5分で読めます。

SwiftUIが提供する豊富なレイアウト機能の中でも、スペーシングとアライメントはUIデザインの基礎を形成します。これらのツールを適切に活用することで、アプリのインターフェースはより直感的で美しく、使いやすくなります。このブログでは、SwiftUIでのスペーシングとアライメントの基本的な使用法を紹介します。

スペーシング(Spacing)

スペーシングは、ビュー間の空間、すなわち「余白」を指します。
SwiftUIでは、スタック(HStack, VStack, ZStack)を使ってビューを配置する際に、スペーシングを指定できます。
これにより、ビュー間の距離を簡単に調整することが出来ます。

スタック内のスペーシング

スタック(HStackVStack)を使用する際、spacingパラメータを指定することで、ビュー間の距離をコントロールできます。
これにより、ビューの見た目を改善し、ユーザーにとって読みやすく、理解しやすいレイアウトを作成できます。

スタック内スペーシング: HStackVStackspacingパラメータを使用して、子ビュー間の水平または垂直方向のスペーシングを指定します。

import SwiftUI

struct SpaceSmpView: View {
    var body: some View {
        VStack(spacing: 20) {
            Text("First Item")
            Text("Second Item")
        }
    }
}
spacing未設定
spacing:20

この例では、2つのテキストビュー間の垂直スペーシングを20ポイントに設定しています。

Spacerを使用したスペーシング

Spacerビューを使用して、ビュー間に柔軟な空間を追加し、ビューを押し分けることができます。

import SwiftUI

struct SpaceSmpView: View {
    var body: some View {
        HStack {
            Text("Left")
            Spacer() // 中央の空間を作る
            Text("Right")
        }
    }
}
Spacer未設定
Spacer設定

この例では、Spacerが左右のテキストビューを押し分けて、両端に配置します。

アライメント(Alignment)

アライメントは、ビューが親ビューまたは他のビューに対してどのように位置づけられるかを制御します。
SwiftUIでは、スタックやグリッド、ZStackなどでアライメントを指定することができ、ビューの整列を細かく調整できます。

VStackのアライメント

alignmentパラメータで、子ビューの垂直方向のアライメントを指定します。

import SwiftUI

struct AlignmentSmp: View {
    var body: some View {
        VStack(alignment: .leading) {
            Text("Line 1")
            Text("Long Line 2")
        }
        .border(.blue)
    }
}
alignment: 指定なし(デフォルト)
alignment: .leading
alignment: .center
alignment: .trailing

画像では、VStack内のテキストビューを左揃え(leading)、中央揃え(center)、右揃え(trailing)にしています。

HStackのアライメント

以下の記事においてHStackのアライメントについて解説しています。

ZStackのアライメント

ZStackでは、重ね合わせるビューの配置をalignmentパラメータで制御します。

alingmentで設定できる値はleading(左揃え)やtrailing(右揃え)、top(上揃え)、bottom(下揃え)だけではなく、bottomTrailing(右下揃え)など上下左右の混在の揃え方も可能です。

import SwiftUI

struct AlignmentSmp2: View {
    var body: some View {
        ZStack(alignment: .bottomTrailing) {
            Image("background1")
            Text("Overlay")
                .font(.title)
                .foregroundColor(.white)
        }
    }
}
alignment: .leading
alignment: .center
alignment: .bottomTrailing

この例では、テキストビューを背景画像のleading(左揃え)center(中央揃え)、bottomTrailing(右下揃え)にそれぞれ配置しています。

まとめ

スペーシングとアライメントは、SwiftUIで美しく整理されたUIを作成するための基本的なツールです。これらを適切に使い分けることで、アプリのレイアウトを柔軟に調整し、ユーザーにとって魅力的でわかりやすいインターフェースを実現できます。

スタックやグリッド、Spacer、アライメントオプションを活用して、目的に応じたレイアウトを展開しましょう。

タイトルとURLをコピーしました