Swift Калькулятор: Отображение чисел на экране

Настройка кнопок и тегов

Настройте теги для цифровых кнопок (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 — сложение. Полная реализация будет рассмотрена в следующем уроке.

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

Что будем искать? Например,программа