[iOS / Swift] Storyboard 간단한 계산기 만들기

2024. 12. 4. 19:42
반응형

계산 기능을 수행하는 간단한 계산기를 Storyboard로 만들어봤음.

기본적인 UI는 이렇게 구성하고 ?로 된 곳을 누르면 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 선택할 수 있는 actionSheet기능을 넣음

첫번째와 두번째 TextField에 숫자를 입력하고 사칙연산 기호를 선택한다음 계산 버튼을 누르면 기능을 수행함.

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var firstOperandField: UITextField!
    
    @IBOutlet weak var secondOperandField: UITextField!
    
    @IBAction func selectOperator(_ sender: Any) {
        
        let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
        
        // 액션을 만드는 코드
        let plusAction = UIAlertAction(title: "+(더하기)", style: .default) { _ in
            self.operatorButton.setTitle("+", for: .normal)
        }
        actionSheet.addAction(plusAction) // 액션시트에 추가
        
        let minusAction = UIAlertAction(title: "-(빼기)", style: .default) { _ in
            self.operatorButton.setTitle("-", for: .normal)
        }
        actionSheet.addAction(minusAction)
        
        let multiplyAction = UIAlertAction(title: "*(곱하기)", style: .default) { _ in
            self.operatorButton.setTitle("*", for: .normal)
        }
        actionSheet.addAction(multiplyAction)
        
        let divideAction = UIAlertAction(title: "/(나누기)", style: .default) { _ in
            self.operatorButton.setTitle("/", for: .normal)
        }
        actionSheet.addAction(divideAction)
        
        present(actionSheet, animated: true)
        
    }
    
    @IBOutlet weak var operatorButton: UIButton!
    
    
    @IBOutlet weak var resultLabel: UILabel!
    
    
    @IBAction func calculateButton(_ sender: Any) {
        
        let a = Int(firstOperandField.text!)!
        let b = Int(secondOperandField.text!)!
        
        let op = operatorButton.title(for: .normal)!
        
        if op == "+" {
            let result = a + b
            resultLabel.text = "\(result)" // String Interpolation
        } else if op == "-" {
            let result = a - b
            resultLabel.text = "\(result)"
        } else if op == "*" {
            let result = a * b
            resultLabel.text = "\(result)"
        } else if op == "/" {
            let result = a / b
            resultLabel.text = "\(result)"
        } else {
            print("연산자를 선택해주세요")
            
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

Calculator_Storyboard.zip
0.06MB

 

반응형

BELATED ARTICLES

more