Form SwiftUI-də: nədir, formanın yaradılması və konfiqurasiyası

Müəllif: IT Sectr Dərc olunub: 2026-06-25 Oxuma vaxtı: 8 dəq

SwiftUI-də Form — iOS-da Settings dizaynına uyğun, strukturlu parametr və məlumat daxiletmə interfeysləri qurmaq üçün konteyner komponentidir. Komponent idarəetmə elementlərini sistem boşluqları və stilləri ilə avtomatik bölmələrdə qruplaşdırır, proqramçını ayırıcıların və rənglərin əl ilə tənzimlənməsindən azad edir. Apple Developer Documentation (2025)-ə görə, Form görünüşü hər platformaya uyğunlaşdırır — iOS-da grouped-cədvəllərdən macOS-da standart siyahılara qədər — vahid API-ni qoruyaraq.

Əsas məqamlar

  • Form — SwiftUI-də elementlərin avtomatik qruplaşdırılması ilə Settings tipli interfeyslər üçün konteyner
  • Section Form daxilində başlıqlı və alt yazılı məntiqi bloklar yaradır
  • Picker, Toggle, TextField platformaya uyğun stili avtomatik əldə edir
  • Boşluqlar və ayırıcılar sistem tərəfindən idarə olunur, əl ilə tənzimləmə tələb olunmur
  • NavigationLink alt ekranlara keçidlə iyerarxik formalar yaratmağa imkan verir

SwiftUI-də Form nədir?

Form məlumat daxiletmə formaları və parametrlər ekranları yaratmaq üçün nəzərdə tutulmuş SwiftUI-nin ixtisaslaşdırılmış konteyneridir. O, List davranışını miras alır, lakin platforma stilləri əlavə edir: iOS-da Form bölmələrinin yuvarlaq küncləri olan grouped-cədvəl kimi, macOS-da isə çekboks və idarəetmə elementləri olan standart sistem siyahısı kimi göstərilir.

VStack və HStack ilə əl ilə düzülmədən fərqli olaraq, Form elementlər arasında boşluqları avtomatik yerləşdirir, ayırıcılar əlavə edir və görünüşü sistem mövzusuna — açıq və ya tünd — uyğunlaşdırır. Proqramçı yalnız məntiqi strukturu təsvir edir: qruplaşdırma üçün Section və içəridə idarəetmə elementləri. Forma konkret platformada Picker, Toggle və ya Stepper-i vizual olaraq necə yerləşdirəcəyini özü qərar verir.

Form bütün standart SwiftUI daxiletmə elementlərini dəstəkləyir: mətn üçün TextField, parollar üçün SecureField, siyahıdan seçim üçün Picker, açmaq/bağlamaq üçün Toggle, diapazonlar üçün Slider, pilləli qiymətlər üçün Stepper və tarix üçün DatePicker. Hər element avtomatik olaraq hədəf platformada Apple-ın HIG (Human Interface Guidelines) standartına uyğun stil əldə edir.

Form vs List: konteynerlərin müqayisəsi

Zahiri oxşarlığa baxmayaraq, Form və List fərqli vəzifələri həll edir. List — sürüşdürmə hərəkətləri və sətirlərin redaktəsi imkanı ilə sürüşdürülə bilən məlumat siyahılarını göstərmək üçün universal konteynerdir. Form — sistem kontrol stilləri üçün optimallaşdırılmış məlumat daxiletmə və parametrlər üçün ixtisaslaşdırılmış konteynerdir.

List dinamik məlumatları göstərmək üçün uyğundur: xəbər lentləri, çatlar, məhsul kataloqları. Form — proqnozlaşdırıla bilən sahə dəsti ilə statik ekranlar üçün: istifadəçi profili, proqram parametrləri, qeydiyyat anketi. Əsas fərq: Form elementləri interaktiv kontrollar ola bilər, List sətirləri isə çox vaxt məlumatları göstərir və toxunuşa naviqasiya və ya hərəkətlə cavab verir.

ParametrFormList
TəyinatMəlumat daxiletmə, parametrlərSiyahıların göstərilməsi
Bölmə stiliGrouped (iOS), sistem (macOS)Plain və ya Grouped
KontrollarPicker, Toggle, Slider, StepperMəhdud (düymə)
Dinamik məlumatlarMəhdud (Section daxilində ForEach)Tam dəstək
Sürüşdürmə hərəkətləriBəli, swipeActionsBəli, swipeActions

Apple Human Interface Guidelines (2025)-ə görə, Form bir ekranda 3-dən 20-dək idarəetmə elementi olan və bölmələrə bölünmənin qavrayışı yaxşılaşdırdığı parametrlər və daxiletmə ekranları üçün istifadə edilməlidir.

Form daxilində Section bölmələri

Section — məntiqi əlaqəli elementləri qruplaşdırmağa imkan verən Form-un əsas tikinti blokudur. Hər Section-ın başlığı, alt yazısı və içəridə istənilən sayda kontrolu ola bilər. Sistem bölmələr arasında boşluqları avtomatik əlavə edir və hər birini yuvarlaq künclü vizual bloka bükür.

Section-dan istifadə formanın oxunaqlılığı üçün son dərəcə vacibdir: mənaca qruplaşdırılmış elementlər istifadəçi tərəfindən daha asan qavranılır. Məsələn, profil parametrləri ekranında ayrıca "Şəxsi məlumatlar", "Bildirişlər" və "Təhlükəsizlik" bölmələrinə ayırmaq olar. Hər bölmə elementlər qrupunun altında sistemin daha kiçik şriftlə göstərdiyi izahedici mətnlə alt yazıdan ibarət ola bilər.

swift
Form {
    Section(header: Text("Profil")) {
        TextField("Ad", text: $name)
        TextField("Email", text: $email)
    }

    Section(header: Text("Bildirişlər"),
            footer: Text("Görüşlər zamanı söndür")) {
        Toggle("Push notifications", isOn: $pushEnabled)
        Toggle("Email notifications", isOn: $emailEnabled)
    }
}

Nümunədə birinci "Profile" bölməsi alt yazısız iki mətn sahəsini, ikinci "Notifications" bölməsi isə qrupun altında izahatla iki keçid elementi ehtiva edir. Alt yazı avtomatik olaraq boşluq əlavə edir və caption şrift stilindən istifadə edir. Section başlıqsız alt yazı və ya alt yazısız başlıq ehtiva edə bilər.

Formda idarəetmə elementləri

Form SwiftUI-nin bütün standart daxiletmə elementlərini dəstəkləyir. Picker Form daxilində avtomatik olaraq iOS-da seçim üçün ayrıca ekrana keçidli naviqasiya sətri kimi göstərilir. Toggle sağ kənara düzləşdirilmiş keçid elementi olan sətir kimi göstərilir. TextField placeholder ilə sistem daxiletmə stilini əldə edir.

Ədədi qiymətlər üçün Stepper (pilləli dəyişmə) və Slider (diapazonda hamar dəyişmə) istifadə olunur. DatePicker bir neçə rejimi dəstəkləyir: date, time, dateAndTime. Rəng seçimi üçün ColorPicker mövcuddur. Hər element əlavə kod olmadan platformaya uyğunlaşır — iOS-da kontrollar UIKit-in doğma stillərindən, macOS-da isə AppKit-dən istifadə edir.

ElementTəyinatFormdakı stil
TextFieldMətn daxiletməPlaceholderli sətir
SecureFieldParol daxiletməGizli simvolları olan sətir
PickerSiyahıdan seçimSeçim ekranına NavigationLink
ToggleAçmaq/BağlamaqKeçid elementli sətir
SliderQiymət diapazonuÜfüqi sürgü
DatePickerTarix/vaxt seçimiKompakt və ya çarx stili

Form daxilində xüsusi kontrollar üçün istənilən SwiftUI View-dan istifadə etmək olar — onlar bölmənin standart davranışını miras alır. Lakin sistem elementlərinə riayət etmək tövsiyə olunur, çünki onlar HIG-ə uyğunluğu təmin edir və əlavə tənzimləmə olmadan Accessibility (VoiceOver, Dynamic Type) dəstəkləyir.

Form kodu nümunələri

Form-dan istifadə edərək qeydiyyat ekranının yaradılmasını nəzərdən keçirək. Forma dörd bölmədən ibarətdir: şəxsi məlumatlar, rol seçimi, abunə parametrləri və göndərmə düyməsi. Qruplaşdırma üçün Section və standart SwiftUI kontrolları istifadə olunur.

swift
struct RegistrationForm: View {
    @State private var name = ""
    @State private var email = ""
    @State private var role = "Developer"
    @State private var agreedToTerms = false

    let roles = ["Developer", "Designer", "Manager"]

    var body: some View {
        NavigationStack {
            Form {
                Section(header: Text("Şəxsi məlumatlar")) {
                    TextField("Name", text: $name)
                    TextField("Email", text: $email)
                        .keyboardType(.emailAddress)
                }

                Section(header: Text("Rol")) {
                    Picker("Select role", selection: $role) {
                        ForEach(roles, id: \.self) { role in
                            Text(role).tag(role)
                        }
                    }
                }

                Section {
                    Toggle("Agree to terms", isOn: $agreedToTerms)
                }

                Section {
                    Button("Qeydiyyatdan keç") {
                        submitForm()
                    }
                    .disabled(!agreedToTerms)
                }
            }
            .navigationTitle("Registration")
        }
    }

    private func submitForm() { }
}

Forma dörd Section-a bölünüb: iki mətn sahəsi ilə şəxsi məlumatlar, Picker vasitəsilə rol seçimi, Toggle vasitəsilə şərtlərlə razılıq və qeydiyyat düyməsi. Düymə istifadəçi şərtlərlə razılaşana qədər söndürülüb — bu, Form daxilində validasiya nümunəsidir. NavigationStack başlıq əlavə edir və Picker-ə iOS-da ayrıca seçim ekranı açmağa imkan verir.

Alt bölmələri olan parametrlər forması

swift
struct SettingsForm: View {
    @State private var volume: Double = 0.5
    @State private var isDarkMode = false
    @State private var reminderDate = Date()

    var body: some View {
        NavigationStack {
            Form {
                Section(header: Text("Görünüş")) {
                    Toggle("Dark mode", isOn: $isDarkMode)
                    Slider(value: $volume, in: 0...1) {
                        Text("Səs")
                    }
                }

                Section(header: Text("Xatırlatmalar"),
                        footer: Text("Seçilmiş vaxtda bildiriş alacaqsınız")) {
                    DatePicker("Remind at",
                        selection: $reminderDate,
                        displayedComponents: .hourAndMinute)
                }

                Section {
                    NavigationLink("Advanced Settings",
                        destination: AdvancedSettingsView())
                }
            }
            .navigationTitle("Settings")
        }
    }
}

Bu nümunə Form daxilində Slider, DatePicker və NavigationLink kombinasiyasını nümayiş etdirir. DatePicker yalnız vaxtı göstərmək üçün hourAndMinute rejimindən istifadə edir. Sonuncu bölmədəki NavigationLink genişləndirilmiş parametrlər ekranına keçid yaradır — Settings tipli interfeyslər üçün geniş yayılmış naxış. Bölmələrin başlıqları və alt yazıları formanı öz-özünü izah edən edir: istifadəçi hər idarəetmə elementinin hansı qrupa aid olduğunu dərhal başa düşür.

Tez-tez verilən suallar

SwiftUI-də Form və List arasındakı fərq nədir?

Form məlumat daxiletmə və parametrlər üçün optimallaşdırılıb: idarəetmə elementləri sistem stilləri, bölmələr — yuvarlaq künclər və boşluqlar əldə edir. List — məlumatların göstərilməsi üçün universal konteynerdir. Form parametrlər ekranları üçün, List isə çatlar, lentlər, kataloqlar üçün uyğundur.

Form daxilində Picker istifadə etmək olar?

Bəli, Form daxilindəki Picker avtomatik olaraq iOS-da seçilmiş qiymətli sətir və siyahıdan seçim üçün NavigationLink kimi göstərilir. macOS-da Picker stildən asılı olaraq açılan siyahı və ya radio qrupu kimi göstərilir. Adaptasiya əlavə kod olmadan baş verir.

Forma xüsusi View əlavə etmək olar?

İstənilən SwiftUI View Form və ya Section daxilinə yerləşdirilə bilər. Xüsusi kontrollar üçün bölmənin standart boşluqlarını miras almaq və sistem şriftləri vasitəsilə Dynamic Type-ı dəstəkləmək tövsiyə olunur. Formanın bütün cihazlarda düzgün göstərilməsi üçün sabit ölçü və rənglərdən çəkinin.

Form sürüşdürməni dəstəkləyir?

Bəli, məzmun ekranın hündürlüyünü aşarsa, Form avtomatik olaraq ScrollView-a bükülür. ScrollView-i əl ilə əlavə etmək lazım deyil — sistem sürüşdürmə ehtiyacını özü müəyyən edir. Sürüşməli olmayan formalar üçün sabit hündürlüklü VStack-dan istifadə edin.

iOS-da Form stilini necə dəyişmək olar?

iOS-da Form .formStyle(.grouped) modifikatoru ilə iki stili dəstəkləyir — yuvarlaq bölmələri olan standart grouped görünüş. macOS üçün çoxsütunlu yerləşdirmə ilə .formStyle(.columns) mövcuddur. Stil bütün Form-a birdən tətbiq olunur və içindəki bütün elementlərin vizual təqdimatını dəyişir.

Nəticə

  • Form — Section vasitəsilə avtomatik qruplaşdırma ilə Settings tipli interfeyslər üçün SwiftUI konteyneri
  • Section elementlərin başlıqlar və alt yazılarla məntiqi bölünməsini təmin edir
  • Picker, Toggle, TextField əl ilə tənzimləmə olmadan avtomatik platforma stilinə uyğunlaşır
  • Boşluqlar və ayırıcılar hər platformada Apple HIG-nə uyğun olaraq sistem tərəfindən idarə olunur
  • NavigationLink Form daxilində parametrlər ekranları üçün standart olan iyerarxik naviqasiya yaradır
  • Form SwiftUI-nin bütün daxiletmə elementlərini dəstəkləyir: Slider, Stepper, DatePicker, ColorPicker
  • İstifadə edin Formu parametrlər və daxiletmə ekranları üçün, List-i isə dinamik məlumat siyahılarını göstərmək üçün

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun