12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swift+StoryBoardでiOS用の50行未満で出来るとてもシンプルな電卓

Last updated at Posted at 2015-06-21

iOS Simulator Screen Shot 2015.06.21 10.32.39.png

機能は本当にシンプルな計算のみです。

四則演算ができます。

以下Githubにてソースコードを公開しています。
https://github.com/hisohiso3b/SuperSimpleCalculator

とてもシンプルですが大雑把にSwiftアプリケーションについての感覚が掴めると思います。

##制作環境
Xcode 6.3.2
Swift 1.2

##制作手順

1.ボタン15個、ラベル3つを上記SSのように配置し、
 オートレイアウトをReset suggested constraintsに設定します。

2.ラベルをアウトレット接続。

3.ボタンをアクション接続。
 具体的に、
 数字は全てnum_button_pushedへ
 "="以外の記号は全てcalc_sign_pushedへ
 "="はequal_pushedへ

4.数字ボタンが押された時、真ん中のラベルに数字ボタンに書かれた数字を追記。

5.四則演算ボタンが押された時、真ん中のラベルの文字列を左上に移動し、
 ボタンのラベルの四則演算記号を右上のラベルに代入。

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()!)
            }
        }
    }
}

12
10
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?