SwiftUIのコードは、以下のような基本的な構成で成り立っています。
Contents
1. View (ビュー)
SwiftUIでは、画面のUIはView
プロトコルに準拠した構造体(struct
)で定義されます。
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, SwiftUI!") // シンプルなテキスト表示
.font(.largeTitle)
.padding()
}
}
View
プロトコルに準拠したstruct
を作成body
プロパティでUIを定義(SwiftUIは宣言的な構文を採用).font(.largeTitle)
や.padding()
などのモディファイアを使って見た目を調整
2. レイアウト (Layout)
SwiftUIでは、VStack
・HStack
・ZStack
などのコンテナを使ってレイアウトを組み立てます。
struct ContentView: View {
var body: some View {
VStack {
Text("Hello, SwiftUI!")
.font(.largeTitle)
Text("Welcome to SwiftUI.")
.foregroundColor(.blue)
}
.padding()
}
}
VStack
→ 垂直方向に配置HStack
→ 水平方向に配置ZStack
→ 奥行き方向に重ねる
3. 状態管理 (State Management)
SwiftUIでは@State
や@Binding
、@ObservedObject
を使ってUIの状態を管理します。
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Text("Count: \(count)")
.font(.title)
Button("Increment") {
count += 1
}
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
}
}
}
@State
はローカルな変数としてUIの状態を管理Button
のアクション内でcount
を更新すると、画面が自動的に更新される
4. ナビゲーション (Navigation)
SwiftUIで画面遷移をする場合は、NavigationView
とNavigationLink
を使用します。
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView()) {
Text("Go to Detail")
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(10)
}
}
.navigationTitle("Home")
}
}
}
struct DetailView: View {
var body: some View {
Text("Detail Screen")
.font(.largeTitle)
}
}
NavigationView
→ 画面全体をナビゲーション可能にするNavigationLink
→ クリックすると別の画面に遷移.navigationTitle("Home")
→ 画面上部にタイトルを表示
5. カスタムビュー
SwiftUIでは、コードの再利用性を高めるために、独自のカスタムビューを作成できます。
struct CustomButton: View {
var title: String
var action: () -> Void
var body: some View {
Button(action: action) {
Text(title)
.padding()
.background(Color.green)
.foregroundColor(.white)
.cornerRadius(10)
}
}
}
struct ContentView: View {
var body: some View {
CustomButton(title: "Tap Me") {
print("Button Tapped!")
}
}
}
CustomButton
という独自のコンポーネントを作成title
とaction
を引数として受け取り、汎用的に使えるボタンを作成
6. まとめ
SwiftUIのコードの基本構成は以下の通り:
View
を作成(struct
+body
)VStack
やHStack
などのレイアウトを活用@State
や@Binding
を使って状態を管理NavigationView
とNavigationLink
で画面遷移- カスタムビューを作成してコードを整理