iOS开发(swift):计算器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zcc9618/article/details/82956914

# xcode如何复制控件 #

alt + 鼠标按住控件拖拽

********************************************************************

# 把控件定义为后台变量 #

鼠标右键按住左侧控件 + 拖至右侧代码处(出现一条线时释放)

*************************************************************************************

# 删除控件的后台代码定义 #

不仅要删除后台代码,还要右击控件,删除outlet联系。否则,运行会报错。

**************************************************************************************************************

# 多个控件同一段代码控制 #

选中多个按钮,分别右击拖至后台要关联代码处,出现小方框时释放(不是出现线),可使多个按钮用相同代码控制

*********************************************************************************************************

计算器相关代码(有不合理的地方)

import UIKit

class ViewController: UIViewController {

    var dotInput = false; //判断小数点是否已输入
    var newInput = true;  //判断是否输入新的数值
    var cacheNumber = ""  //缓冲临时数值
    var op = ""  //缓冲运算符
    
    @IBOutlet weak var resultLabel: UILabel!
    
    //点击小数点
    @IBAction func dotClick(_ sender: UIButton) {
        if !dotInput{  //如果小数点未输入,则执行下面语句
            resultLabel.text! += "."
            dotInput = true
        }
    }
    
    //点击数字按钮
    @IBAction func numberClick(_ sender: UIButton) {
        //输入单个整数
        //resultLabel.text = sender.titleLabel?.text
        
        //输入整数
        //let screenNum = Int(resultLabel.text! )
        //resultLabel.text = "\(screenNum! * 10 + Int(sender.titleLabel!.text!)!)"
        
        let screenNum = Int(resultLabel.text! )
        if dotInput{  //如果小数点输入,则执行下面语句
            resultLabel.text! += sender.titleLabel!.text!
        }
        else{  //如果小数点未输入,则执行下面语句
            resultLabel.text = "\(screenNum! * 10 + Int(sender.titleLabel!.text!)!)"
        }
    }
    
    //点击 + - * / 运算符按钮
    @IBAction func operatorClick(_ sender: UIButton) {
        cacheNumber = resultLabel.text!
        op = sender.titleLabel!.text!
        resultLabel.text = "0"
        dotInput = false
        newInput = true
    }
    
    //运算
    func calculate(){
        let num1 = Double(cacheNumber)!
        let num2 = Double(resultLabel.text!)!
        var result:Double
        if "+" == op {
            result = num1 + num2
        }
        else if "-" == op {
            result = num1 - num2
        }
        else if "*" == op {
            result = num1 * num2
        }
        else if "/" == op {
            result = num1 / num2
        }
        else {
            result = 0
        }
        resultLabel.text = "\(result)"
        dotInput = false
        newInput = true
        
    }
    
    //点击运算按钮 =
    @IBAction func equalClick(_ sender: UIButton) {
        calculate()
    }
    
    
    //复位 AC 按钮
    @IBAction func clearClick(_ sender: UIButton) {
        dotInput = false
        newInput = true
        cacheNumber = "0"
        op = ""
        resultLabel.text = "0"
    }

}

猜你喜欢

转载自blog.csdn.net/zcc9618/article/details/82956914