Swift + Story Board 에서 iOS 는 50 줄도 안 되는 간단한 계산기 를 사용한다

8881 단어 Swift

기능은 정말 간단한 계산일 뿐이다.


사칙 연산을 할 수 있다.
다음은 Giithub이 공개한 소스 코드입니다.
https://github.com/hisohiso3b/SuperSimpleCalculator
아주 간단하지만 아마 스위프트 앱에 대한 느낌을 잡을 수 있을 것 같아요.

제작 환경


Xcode 6.3.2
Swift 1.2

제작 절차


1. 위 SS와 같이 버튼 15개, 탭 3개 구성
자동 레이아웃을 Reset suggested contrants로 설정합니다.
2. 연결 태그를 내보냅니다.
3. 동작 연결 버튼.
구체적으로 말하면
숫자가 모두num입니다.button_push로 가기
"="이외의 기호는 모두calcsign_push로 가기
= 은 equal입니다.push로 가기
4. 숫자 버튼이 눌렸을 때 가운데 탭에 숫자 버튼에 적힌 숫자를 기록한다.
5. 4개의 연산 버튼을 누르면 중간 탭의 문자열이 왼쪽으로 이동합니다
단추 탭의 네 가지 연산 기호를 오른쪽 상단의 탭에 대입합니다.
6. 등호를 눌렀을 때 오른쪽 상단 라벨의 기호로 판단
중간 및 왼쪽 위 태그를 기호로 계산합니다.
7. 답안을 가운데의 라벨에 대입한다.
ViewController.swift

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var text_label: UILabel!
    @IBOutlet weak var prev_num_label: UILabel!
    @IBOutlet weak var calc_label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        text_label.text = ""
        prev_num_label.text = ""
        calc_label.text = ""
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func num_button_pushed(sender: UIButton) {
        text_label.text! += sender.titleLabel!.text!
    }

    @IBAction func calc_sign_pushed(sender: UIButton) {
        calc_label.text = sender.titleLabel!.text!
        prev_num_label.text = text_label.text
        text_label.text = ""
    }

    @IBAction func equal_pushed(sender: AnyObject) {
        if prev_num_label.text!.toInt() != nil && text_label.text!.toInt() != nil {
            if calc_label.text == "+" {
                text_label.text = String(prev_num_label.text!.toInt()! + text_label.text!.toInt()!)
            }else if calc_label.text == "-" {
                text_label.text = String(prev_num_label.text!.toInt()! - text_label.text!.toInt()!)
            }else if calc_label.text == "*" {
                text_label.text = String(prev_num_label.text!.toInt()! * text_label.text!.toInt()!)
            }else if calc_label.text == "/" {
                text_label.text = String(prev_num_label.text!.toInt()! / text_label.text!.toInt()!)
            }
        }
    }
}

좋은 웹페이지 즐겨찾기