- Published on
SwiftUI-da Group β bir nechta elementga modifier qo'llash
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Bu qisqa video. Group β VStack, HStack, ZStack kabi bir to'plam, lekin layout-ni o'zgartirmaydi. Asosiy maqsadi: bir nechta elementga bir vaqtda modifier qo'llash.
Muammo β modifierni ko'p joyga yozish
VStack(spacing: 50) {
Text("Salom dunyo 1")
Text("Salom dunyo 2")
Text("Salom dunyo 3")
}
.foregroundColor(.red) // hammaga qo'llanadi β yaxshi
Hammaga bir xil modifier β muammo yo'q. Lekin faqat 2 ta elementga o'ziga xos modifier qo'ymoqchi bo'lsak:
// β Kod takrorlanadi β yaxshi emas
VStack(spacing: 50) {
Text("Salom dunyo 1")
.font(.caption)
.foregroundColor(.green)
Text("Salom dunyo 2")
.font(.caption)
.foregroundColor(.green)
Text("Salom dunyo 3")
}
.foregroundColor(.red)
Ko'proq element bo'lsa β har biriga alohida modifier yozish charchattiradi va kod katta bo'lib ketadi.
1-yechim: Ichki VStack
VStack(spacing: 50) {
// Ichki VStack β ishlaydi, lekin ortiqcha qatlam
VStack(spacing: 50) {
Text("Salom dunyo 1")
Text("Salom dunyo 2")
}
.font(.caption)
.foregroundColor(.green)
Text("Salom dunyo 3")
}
.foregroundColor(.red)
Bu ishlaydi, lekin ortiqcha VStack qatlami paydo bo'ladi. Layout o'zgarishi mumkin.
2-yechim: Group β eng to'g'ri usul
VStack(spacing: 50) {
// Group β layout o'zgarmaydi, faqat birgalikda guruhlanadi
Group {
Text("Salom dunyo 1")
Text("Salom dunyo 2")
}
.font(.caption)
.foregroundColor(.green)
Text("Salom dunyo 3")
}
.foregroundColor(.red)
Group elementlarni mantiqiy guruh sifatida birlashtiradi, lekin ekranda hech qanday o'zgarish bo'lmaydi β xuddi VStack ichida alohida turishgandek ko'rinadi.
VStack vs Group β farqi
// VStack β elementlarni ustma-ust joylashtiradi (yangi layout qatlami)
VStack {
Text("1")
Text("2")
}
// Group β faqat mantiqiy guruh, layout o'zgarmaydi
Group {
Text("1")
Text("2")
}
| VStack / HStack | Group | |
|---|---|---|
| Layout o'zgaradimi | Ha β yangi qatlam | Yo'q β mavjud layout saqlanadi |
| Modifier qo'llash | Ha | Ha |
| Qachon ishlatish | Joylashuv o'zgartirish kerak | Faqat modifier qo'llash kerak |
Xulosa
// Bir xil modifier-larni ko'p elementga qo'yish kerak bo'lsa
// va yangi stack qatlami keraksiz bo'lsa β Group ishlating
Group {
Text("Element 1")
Text("Element 2")
Text("Element 3")
}
.font(.headline)
.foregroundColor(.blue)
// Uchala elementga bir vaqtda qo'llanadi
// Layout o'zgarmaydi
Murakkab view-lar yaratishda Group kod takrorlanishini kamaytiradi va tuzilmani tartibli saqlaydi.
Rahmat, men Nick, bu Swiftful Thinking va keyingi videoda ko'rishguncha!