Modifierها و ViewBuilder (SwiftUI Modifiers & ViewBuilder)
اینجا با «مودیفایرهای SwiftUI» آشنا می شویم. «مودیفایر (Modifier)» یعنی تنظیم ظاهر یا رفتار نما. همچنین «ViewBuilder» راهی برای ساخت چند نما در یک خروجی است.
مودیفایرهای SwiftUI چیست؟
هر مودیفایر یک نمای تازه برمی گرداند. سپس می توانی زنجیره ای بچینی. مثلا فونت، رنگ، پدینگ، و پس زمینه را پشت سرهم اعمال کن.
import SwiftUI
struct ModifiersDemo: View {
var body: some View {
Text("Hello")
.font(.title)
.foregroundStyle(.blue)
.padding()
.background(.blue.opacity(0.1))
.cornerRadius(8)
}
}
struct ContentView: View {
var body: some View {
ModifiersDemo()
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
نکته: ترتیب مودیفایرها مهم است. بنابراین اول اندازه، بعد رنگ و پس زمینه را بگذار.
ViewBuilder چیست؟
«ViewBuilder» یک سازنده نماست. سپس اجازه می دهد چند کودک را در یک محل برگردانی. مثل ساخت چند کارت در یک ستون.
import SwiftUI
@ViewBuilder
func InfoRow(_ title: String, _ value: String) -> some View {
HStack {
Text(title)
.bold()
Spacer()
Text(value)
}
}
struct ViewBuilderDemo: View {
var body: some View {
VStack(spacing: 8) {
InfoRow("Name", "SwiftUI")
InfoRow("Version", "5+")
}
.padding()
}
}
struct ContentView: View {
var body: some View {
ViewBuilderDemo()
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی
- یک نما بساز و متن بگذار.
- مودیفایرهای پایه را زنجیره کن.
- با @ViewBuilder یک جزء قابل استفاده مجدد بساز.
- جزء را چندبار در VStack استفاده کن.
هشدار: زیاده روی در زنجیره ها کد را سخت خوان می کند. بنابراین اجزا را جدا کن.
برای مطالعه بیشتر، صفحه مودیفایرهای SwiftUI را ذخیره کن. همچنین ژست ها را در RotationGesture و MagnificationGesture ببین.
جمع بندی سریع
- مودیفایر نمای تازه می سازد.
- ترتیب مودیفایرها اهمیت دارد.
- ViewBuilder چند نما را بازمی گرداند.
- اجزا را کوچک و قابل استفاده نگه دار.