在数字化时代,Swift编程语言因其高效、安全、易学等特点,已经成为iOS和macOS应用开发的首选语言。对于编程新手来说,从理论到实践的过渡往往是一个挑战。本文将带你从实战案例出发,一步步成长为Swift编程高手。
实战案例一:制作一个简单的计算器
1. 初始化界面
首先,我们需要创建一个基本的计算器界面。在Swift中,我们可以使用UIKit框架来设计UI。
import UIKit
class CalculatorViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 设置背景颜色
view.backgroundColor = .white
}
}
2. 添加按钮
接下来,我们需要添加数字按钮、操作符按钮和等于按钮。
let numberButtons = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0].map { UIButton(frame: CGRect(x: $0 % 3 * 100, y: $0 / 3 * 100, width: 100, height: 100)) { button in
button.setTitle("\(button.tag)", for: .normal)
button.tag = $0
} }
// 添加按钮到视图中
numberButtons.forEach { view.addSubview($0) }
3. 实现计算逻辑
最后,我们需要为按钮添加点击事件,实现计算逻辑。
var currentInput = ""
var firstNumber: Double?
var secondNumber: Double?
var operation: String?
numberButtons.forEach { button in
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
}
@objc func buttonTapped(_ sender: UIButton) {
guard let buttonTag = sender.tag else { return }
switch buttonTag {
case 10...18:
currentInput += "\(buttonTag)"
case 19:
if let first = firstNumber, let second = secondNumber, let op = operation {
let result = performOperation(first, second, op)
currentInput = "\(result)"
firstNumber = result
operation = nil
}
default:
break
}
}
func performOperation(_ first: Double, _ second: Double, _ op: String) -> Double {
switch op {
case "+":
return first + second
case "-":
return first - second
case "*":
return first * second
case "/":
return first / second
default:
return 0
}
}
实战案例二:制作一个待办事项列表
1. 创建数据模型
首先,我们需要定义一个待办事项的数据模型。
struct TodoItem {
var title: String
var completed: Bool
}
2. 创建待办事项列表界面
然后,我们使用UITableView来展示待办事项列表。
import UIKit
class TodoListViewController: UIViewController, UITableViewDataSource {
var todoItems = [TodoItem]()
override func viewDidLoad() {
super.viewDidLoad()
// 设置背景颜色
view.backgroundColor = .white
// 初始化UITableView
let tableView = UITableView(frame: view.bounds, style: .plain)
tableView.dataSource = self
view.addSubview(tableView)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return todoItems.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .default, reuseIdentifier: "TodoCell")
cell.textLabel?.text = todoItems[indexPath.row].title
return cell
}
}
3. 添加待办事项
最后,我们需要为待办事项列表添加添加功能。
// 添加按钮到视图中
let addButton = UIButton(frame: CGRect(x: 20, y: 100, width: 100, height: 50))
addButton.setTitle("Add Todo", for: .normal)
addButton.addTarget(self, action: #selector(addTodo), for: .touchUpInside)
view.addSubview(addButton)
@objc func addTodo() {
let alert = UIAlertController(title: "New Todo", message: "Enter a new todo item", preferredStyle: .alert)
alert.addTextField { textField in
textField.placeholder = "Todo Item"
}
alert.addAction(UIAlertAction(title: "Add", style: .default, handler: { [weak alert] _ in
guard let textField = alert?.textFields?[0], let text = textField.text, !text.isEmpty else { return }
self.todoItems.append(TodoItem(title: text, completed: false))
self.tableView.reloadData()
}))
present(alert, animated: true)
}
总结
通过以上两个实战案例,我们可以看到Swift编程的强大之处。从制作计算器到待办事项列表,我们逐步掌握了Swift编程的基本语法和常用框架。当然,这只是Swift编程的冰山一角,希望你能继续深入学习,探索更多可能性。祝你学习愉快!
