首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Swift中制作计算器

制作一个简单的计算器应用是一个很好的Swift和iOS开发入门项目。以下是一个详细的步骤指南,帮助你创建一个基本的计算器应用。

1. 创建一个新的Xcode项目

  1. 打开Xcode。
  2. 选择 "Create a new Xcode project"。
  3. 选择 "App" 并点击 "Next"。
  4. 输入项目名称(例如 "Calculator"),选择 "Swift" 作为编程语言,确保 "User Interface" 选择 "Storyboard"。
  5. 选择保存位置并点击 "Create"。

2. 设计用户界面

Main.storyboard 中设计计算器的用户界面。你可以使用按钮、标签和堆栈视图来布局计算器。

  1. 打开 Main.storyboard
  2. 拖动一个 UILabel 到视图控制器顶部,用于显示结果。
  3. 使用 UIButton 创建数字按钮(0-9)和操作按钮(+、-、*、/、=、C)。
  4. 使用 UIStackView 来组织按钮,使其布局整齐。

3. 创建视图控制器

ViewController.swift 中实现计算器的逻辑。

代码语言:javascript
复制
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var displayLabel: UILabel!
    
    private var isFinishedTypingNumber: Bool = true
    private var currentValue: Double {
        get {
            guard let number = Double(displayLabel.text!) else {
                fatalError("Cannot convert display label text to a Double.")
            }
            return number
        }
        set {
            displayLabel.text = String(newValue)
        }
    }
    
    private var firstNumber: Double = 0
    private var operation: String = ""
    
    @IBAction func numberPressed(_ sender: UIButton) {
        if let numberValue = sender.currentTitle {
            if isFinishedTypingNumber {
                displayLabel.text = numberValue
                isFinishedTypingNumber = false
            } else {
                displayLabel.text = displayLabel.text! + numberValue
            }
        }
    }
    
    @IBAction func operationPressed(_ sender: UIButton) {
        isFinishedTypingNumber = true
        firstNumber = currentValue
        if let operationValue = sender.currentTitle {
            operation = operationValue
        }
    }
    
    @IBAction func equalsPressed(_ sender: UIButton) {
        isFinishedTypingNumber = true
        let secondNumber = currentValue
        
        var result: Double = 0
        
        switch operation {
        case "+":
            result = firstNumber + secondNumber
        case "-":
            result = firstNumber - secondNumber
        case "*":
            result = firstNumber * secondNumber
        case "/":
            result = firstNumber / secondNumber
        default:
            fatalError("The operation passed in does not match any of the cases.")
        }
        
        currentValue = result
    }
    
    @IBAction func clearPressed(_ sender: UIButton) {
        displayLabel.text = "0"
        isFinishedTypingNumber = true
        firstNumber = 0
        operation = ""
    }
}

4. 连接UI元素和代码

  1. 打开 Main.storyboard
  2. 选择视图控制器并打开 "Assistant Editor"(双窗口模式)。
  3. 确保右侧窗口显示 ViewController.swift
  4. 按住 Control 键并从 UILabel 拖动到 ViewController.swift,创建一个 IBOutlet,命名为 displayLabel
  5. 按住 Control 键并从每个数字按钮拖动到 ViewController.swift,创建一个 IBAction,命名为 numberPressed
  6. 按住 Control 键并从每个操作按钮(+、-、*、/)拖动到 ViewController.swift,创建一个 IBAction,命名为 operationPressed
  7. 按住 Control 键并从等号按钮(=)拖动到 ViewController.swift,创建一个 IBAction,命名为 equalsPressed
  8. 按住 Control 键并从清除按钮(C)拖动到 ViewController.swift,创建一个 IBAction,命名为 clearPressed

5. 运行应用

  1. 选择一个模拟器或连接一个物理设备。
  2. 点击 Xcode 顶部的 "Run" 按钮(或按 Cmd + R)。
  3. 你的计算器应用应该在模拟器或设备上运行。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券