Создание настраиваемой кнопки с текстом и обработчиком

В SwiftUI достаточно компонента со строкой подписи и closure-действием, передаваемыми извне. Стандартный Button сохранит обработку нажатий и доступность.

Короткий ответ

Что ответить на собеседовании

В SwiftUI достаточно компонента со строкой подписи и closure-действием, передаваемыми извне. Стандартный Button сохранит обработку нажатий и доступность.

Подробный разбор

Ответ с пояснениями

Условие

Разработать кнопку, у которой пользователь может задать отображаемый текст и привязать произвольную функцию, вызываемую при нажатии.

Ответ

В SwiftUI достаточно компонента со строкой подписи и closure-действием, передаваемыми извне. Стандартный Button сохранит обработку нажатий и доступность.

struct ActionButton: View {
    let title: String
    let action: () -> Void
    var body: some View {
        Button(title, action: action)
    }
}

Пример: ActionButton(title: "Сохранить") { save() }. Общий дизайн лучше вынести в ButtonStyle, чтобы компонент не дублировал логику состояния нажатия. Если callback хранится в пользовательском initializer, его параметр отмечают @escaping. Сетевую операцию запускайте из обработчика, а не из body.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее