Настройка кнопок и тегов
Настройте теги для цифровых кнопок (0-9). В атрибутах каждой кнопки (в нижней части панели свойств) найдите поле Tag. Задайте значения тегов, соответствующие цифрам на кнопках: 0 для кнопки «0», 1 для кнопки «1» и т.д. Это позволит идентифицировать нажатую кнопку при обработке события.
Создание функции обработки нажатия кнопок
Создайте одну общую функцию для обработки нажатия кнопок. В Xcode перетащите кнопки с цифрами на область создания функций (в редакторе кода), создав подключение (connection) типа Action. Назовите функцию, например, digits.
Связывание текстового поля с кодом
Свяжите текстовое поле (лейбл) в Main.storyboard с кодом. Выберите текстовое поле и перетащите его в область объявления переменных в редакторе кода. Создайте Outlet с именем, например, displayLabel. Это позволит обращаться к текстовому полю из кода.
Реализация функции обработки нажатия
Функция digits будет получать значение нажатой кнопки из её тега и добавлять это значение к текущему содержимому текстового поля. Используйте следующий код:
@IBAction func digits(_ sender: UIButton) {
let currentText = displayLabel.text ?? ""
let buttonValue = sender.tag.description
let newText = currentText + buttonValue
displayLabel.text = newText
}
Этот код получает текущее значение текстового поля (currentText), значение с нажатой кнопки (buttonValue) и объединяет их в новую строку (newText), которая затем устанавливается в качестве нового значения текстового поля. ?? "" обрабатывает случай, когда displayLabel.text равно nil.
Хранение числового значения
Для математических операций храните введенное значение как число с плавающей точкой (Double). Добавьте переменную:
var numFromScreen: Double = 0.0
И обновите функцию digits:
@IBAction func digits(_ sender: UIButton) {
let currentText = displayLabel.text ?? ""
let buttonValue = sender.tag.description
let newText = currentText + buttonValue
displayLabel.text = newText
numFromScreen = Double(newText)!
}
Теперь numFromScreen будет содержать числовое значение. Использование ! предполагает успешное преобразование. В реальном приложении добавьте обработку ошибок преобразования.
Обработка кнопок операций и очистки
Для кнопок операций (+, -, *, /) и очистки (Clear) создайте функцию operations. Перетащите эти кнопки на область создания функций в редакторе кода, создайте Action и назовите функцию. Добавьте базовую логику проверки на наличие введенных данных и заготовку для обработки каждой операции:
@IBAction func operations(_ sender: UIButton) {
if displayLabel.text != "" {
if sender.tag == 11 { // Деление
// Логика деления
} else if sender.tag == 12 { // Умножение
// Логика умножения
} else if sender.tag == 13 { // Вычитание
// Логика вычитания
} else if sender.tag == 14 { // Сложение
// Логика сложения
}
}
}
Задайте теги для кнопок операций: 11 — деление, 12 — умножение, 13 — вычитание, 14 — сложение. Полная реализация будет рассмотрена в следующем уроке.
В этом уроке реализовано отображение вводимых данных на экране калькулятора. Обработка нажатия на цифровые кнопки и отображение их значений в текстовом поле, а также подготовлена основа для реализации арифметических операций в следующем уроке.