Form (Form)
«فرم در SwiftUI» صفحه ورودی هاست. «Form» گروهی از کنترل هاست. یعنی چند ورودی را مرتب کنار هم می چیند. مثل برگه ثبت نام مدرسه که بخش بندی دارد.
فرم ساده با دو بخش
با «Section» فرم را خواناتر کن. سپس «TextField» و «Toggle» را در بخش های جدا بگذار.
import SwiftUI
struct FormBasicDemo: View {
@State private var name: String = ""
@State private var notifications: Bool = true
var body: some View {
Form {
Section(header: Text("Profile")) {
TextField("Name", text: $name)
}
Section(header: Text("Preferences")) {
Toggle("Notifications", isOn: $notifications)
}
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
FormBasicDemo()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی فرم ساده
- یک Form بساز.
- دو Section اضافه کن.
- کنترل ها را در بخش مناسب قرار بده.
نکته: هر بخش موضوع مستقل دارد. بنابراین کاربر سریع تر می فهمد.
اعتبارسنجی و دکمه ارسال
با یک شرط ساده، دکمه را غیرفعال کن. سپس وقتی ورودی درست شد، فعال می شود.
import SwiftUI
struct FormAdvancedDemo: View {
@State private var email: String = ""
@State private var accepted: Bool = false
var valid: Bool {
email.contains("@") && accepted
}
var body: some View {
Form {
Section(header: Text("Account")) {
TextField("Email", text: $email)
.keyboardType(.emailAddress)
Toggle("Accept Terms", isOn: $accepted)
}
Section {
Button("Submit") {
}
.disabled(!valid)
}
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
FormAdvancedDemo()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی اعتبارسنجی
- یک State برای ورودی ها بساز.
- یک شرط valid تعریف کن.
- دکمه را با !valid غیرفعال کن.
نکته: پیام خطا را نزدیک همان ورودی نشان بده. بنابراین کاربر سریع اصلاح می کند.
پیوندهای مفید
برای جزئیات بخش بندی، صفحه Section را ببین. همچنین فهرست ها در List نمایش می یابند. برای فرم در SwiftUI این صفحه مرجع تو است.
جمع بندی سریع
- Form ورودی ها را گروه بندی می کند.
- Section خوانایی فرم را زیاد می کند.
- با شرط ساده، ارسال را کنترل کن.
- برچسب کوتاه بزن؛ ابهام ایجاد نکن.