Одним из наиболее часто используемых представлений в SwiftUI является представление формы, которое представляет собой контейнер для структурированного группирования связанных элементов управления и полей ввода данных. В этом посте мы рассмотрим основы формы SwiftUI вместе с некоторыми примерами и вариантами использования.

Основы формы SwiftUI

Форма SwiftUI создается с использованием представления Form, которое представляет собой контейнер, который автоматически настраивает свое содержимое в соответствии с доступным пространством. Представление формы предоставляет несколько стилей по умолчанию для своих дочерних представлений, включая default, grouped и insetGrouped. Вот базовый пример формы:

import SwiftUI

struct ContentView: View {
    @State var firstName: String = ""
    @State var lastName: String = ""
    
    var body: some View {
        Form {
            Section {
                Text("First Name")
                TextField("Enter your first name", text: $firstName)
            }
            Section {
                
                Text("Last Name")
                TextField("Enter your last name", text: $lastName)
            }
            Section {
                Button("Submit") {
                    // Save form data
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView(firstName: "Nick", lastName: "Jensen")
    }
}

Приведенный выше код создаст следующее представление:

В этом примере мы создали простую форму с двумя разделами: один для имени и один для фамилии. Каждый раздел содержит представление Text и представление TextField. Мы также добавили третий раздел с представлением кнопок для сохранения данных формы.

Это почти самая простая форма, которую вы можете сделать, и вы получаете заполнитель из коробки — красиво и легко.

Примеры использования формы SwiftUI

SwiftUI Form — это универсальное представление, которое можно использовать в самых разных случаях и которое немного упрощает вашу жизнь.

Вот несколько примеров использования Form:

Формы ввода данных

Одним из наиболее распространенных вариантов использования SwiftUI Form являются формы ввода данных. Формы можно использовать для сбора пользовательского ввода для создания профилей, отправки отзывов или заполнения опросов. В дополнение к TextField, формы могут содержать другие типы элементов управления вводом, такие как Toggle, DatePicker и Stepper.

struct FeedbackForm: View {
    @State var feedbackText = ""
    @State var rating = 5
    @State var isAnonymous = false
    var body: some View {
        Form {
            Section(header: Text("Feedback")) {
                TextField("Enter your feedback", text: $feedbackText)
                Stepper("Rating: \(rating)", value: $rating, in: 1...10)
            }
            Section {
                Toggle("Anonymous", isOn: $isAnonymous)
            }
            Section {
                Button("Submit") {
                    // Submit feedback
                }
            }
        }
    }
}

Приведенный выше код создаст следующее представление:

В этом примере мы создали форму обратной связи с TextField для сбора отзывов, Stepper для оценки, Toggle для анонимности и Button для отправки отзыва.

Экраны настроек

Другим распространенным вариантом использования формы SwiftUI являются экраны настроек. Формы могут группировать связанные параметры и предпочтения, такие как профили пользователей, уведомления и конфиденциальность.

В следующем примере кода мы создадим удобный экран настроек, на котором будут отображаться имя пользователя и адрес электронной почты. Экран также позволит пользователю включить уведомления. Это сделано с помощью формы, которая содержит два раздела.

struct SettingsScreen: View {
    @State var notificationsEnabled = true
    @State var selectedSound = ""
    var body: some View {
        Form {
            Section(header: Text("User")) {
                Text("Name: Mike")
                Text("Email: [email protected]")
            }
            Section(header: Text("Notifications")) {
                Toggle("Enable notifications", isOn: $notificationsEnabled)
                Picker("Notification sound", selection: $selectedSound) {
                    Text("Default").tag("default")
                    Text("Chimes").tag("chimes")
                    Text("Synth").tag("synth")
                }
            }
        }
    }
}

Приведенный выше код даст следующий результат:

Сводка по форме SwiftUI

В заключение, SwiftUI Form — ценный инструмент для разработчиков, стремящихся создавать интуитивно понятные и эффективные пользовательские интерфейсы в своих приложениях для iOS.

Благодаря простоте использования, параметрам настройки и возможностям динамического изменения размера и прокрутки Form упрощает создание сложных форм с различными типами и стилями ввода.

SwiftUI Form может значительно улучшить взаимодействие с пользователем и упростить процесс разработки приложений, что делает его отличным выбором для разработчиков.

Первоначально опубликовано на https://softwareanders.com 27 марта 2023 г.