В 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.