مودیفایرهای سفارشی (Custom Modifiers)
اینجا «مودیفایرهای سفارشی SwiftUI» را می سازیم. «مودیفایر (Modifier)» تغییردهنده ظاهر یا رفتار ویو است. با یک «ViewModifier (کلاس قانون گذار نما)» استایل را یک جا تعریف می کنیم. سپس آن را همه جا مصرف می کنیم؛ مثل ساخت یونیفرم مدرسه.
ساخت ViewModifier قابل استفاده مجدد
ابتدا استایل را در یک نوع ViewModifier کپسوله کن. سپس با یک اکستنشن، متدی کوتاه برای استفاده ساده بساز.
import SwiftUI
struct CardStyle: ViewModifier {
func body(content: Content) -> some View {
content
.padding()
.background(.blue.opacity(0.1))
.cornerRadius(8)
}
}
extension View {
func card() -> some View {
modifier(CardStyle())
}
}
struct CustomModifiersDemo: View {
var body: some View {
Text("Hello")
.card()
}
}
struct ContentView: View {
var body: some View {
CustomModifiersDemo()
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
نکته: با پارامتر دادن به سازنده مودفیایر، استایل را پویا کن. مثلا رنگ و گوشه ها.
گام های عملی
- یک نوع ViewModifier بساز.
- قوانین استایل را آنجا بنویس.
- برای View یک اکستنشن بساز.
- متد کوتاه مثل card را برگردان.
- متد را روی هر ویو اعمال کن.
برای ترکیب بهتر، بخش ViewBuilder را ببین. همچنین صفحه مودیفایرها جزئیات پایه را دارد. برای پیوند متنی، این عبارت را هم ببین: مودیفایرهای سفارشی SwiftUI.
جمع بندی سریع
- مودیفایر سفارشی، استایل را قابل استفاده مجدد می کند.
- اکستنشن، مصرف را خیلی کوتاه می کند.
- کد مرتب و قابل تست می ماند.
- پارامترها، استایل را پویا می کنند.