ViewBuilder (ViewBuilder)
اینجا با «ViewBuilder (ViewBuilder)» آشنا می شویم. «ViewBuilder» یک ویژگی برای ساخت چند نما در یک جای بازگشت است. بنابراین کد مرتب می ماند و بخش ها قابل استفاده مجدد می شوند؛ مثل ساخت آجرهای یک دیوار.
ساخت ردیف با @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 شرطی ها را هم می پذیرد، می توانی با if بخش ها را کم وزیاد کنی.
گام های عملی
- یک تابع با @ViewBuilder تعریف کن.
- چند نمای فرزند داخلش قرار بده.
- تابع را در یک VStack استفاده کن.
- با پارامترها خروجی را شخصی سازی کن.
برای استایل دهی بهتر، بخش مودیفایرها را ببین. همچنین نمونه های ترکیبی را در مودیفایرها و ViewBuilder دنبال کن.
جمع بندی سریع
- ViewBuilder چند نما را یکجا می سازد.
- کد تمیز و قابل تغییر می ماند.
- تابع ها دوباره استفاده می شوند.
- با شرط ها انعطاف بیشتر می گیری.