Layout dengan VStack, HStack, dan ZStack
Penjelasan
Karena body hanya boleh mengembalikan satu View, kamu butuh container untuk menggabungkan banyak View jadi satu kesatuan. SwiftUI menyediakan tiga stack utama: VStack menyusun child secara vertikal (atas ke bawah), HStack menyusun secara horizontal (kiri ke kanan), dan ZStack menumpuk child di sumbu kedalaman (child belakang dulu, lalu di atasnya). Setiap stack punya parameter alignment (mis. .leading, .center, .trailing untuk VStack) dan spacing untuk mengatur jarak antar child. Stack bisa disarangkan (nested) sebebas yang kamu mau — VStack berisi HStack, HStack berisi VStack, dan seterusnya — inilah cara SwiftUI membangun layout kompleks dari blok-blok sederhana.
Contoh Konsep
import SwiftUI
struct LayoutView: View {
var body: some View {
VStack(alignment: .leading, spacing: 12) {
Text("Judul Utama")
.font(.title)
HStack {
Text("Kiri")
Spacer()
Text("Kanan")
}
ZStack {
Color.blue
Text("Di atas warna")
.foregroundColor(.white)
}
.frame(height: 100)
}
}
}
Praktikum
Susun VStack berisi dua Text ("Baris 1" dan "Baris 2"), lalu di bawahnya HStack berisi Text("Kiri") dan Text("Kanan") yang dipisahkan Spacer().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Spacer() di dalam HStack/VStack akan mendorong View di sekitarnya menjauh sejauh mungkin — cara paling umum untuk membuat elemen menempel ke ujung kiri dan kanan tanpa hitung manual posisi.