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

在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. 你的计算器应用应该在模拟器或设备上运行。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共22个视频
JavaWeb阶段入门教程-EL表达式+JSP【动力节点】
动力节点Java培训
共39个视频
动力节点-Spring框架源码解析视频教程-上
动力节点Java培训
共0个视频
动力节点-Spring框架源码解析视频教程-
动力节点Java培训
共0个视频
动力节点-Spring框架源码解析视频教程-下
动力节点Java培训
共29个视频
【动力节点】JDBC核心技术精讲视频教程-jdbc基础教程
动力节点Java培训
共17个视频
动力节点-JDK动态代理(AOP)使用及实现原理分析
动力节点Java培训
共45个视频
2022全新MyBatis框架教程-循序渐进,深入浅出(上)
动力节点Java培训
共0个视频
2022全新MyBatis框架教程-循序渐进,深入浅出(
动力节点Java培训
共0个视频
2022全新MyBatis框架教程-循序渐进,深入浅出(下)
动力节点Java培训
共26个视频
【少儿Scratch3.0编程】0基础入门
小彭同学
共32个视频
动力节点-Maven基础篇之Maven实战入门
动力节点Java培训
共49个视频
动力节点-MyBatis框架入门到实战教程
动力节点Java培训
共69个视频
《腾讯云AI绘画-StableDiffusion图像生成》
学习中心
领券