如何用Xcode做一个计算器

3,491 阅读3分钟

前言

使用Xcode工具用Swift语言编写代码,实现一个基本的计算器,计算器最起码要实现iPhone手机中简易计算器的功能(加减乘除以及清空,小数点等功能)。最后还要合理调整视图,让计算器看上去美观,实用。


设计思路:

先新建一个xcode工程,添加控件设计好计算器可视化界面

进入编辑器,开始编写计算机运算代码,设置变量(num1,num2,result)

关联控件:按住control,将控件一一拖进Swift文件,编写代码,依次关联每个控件

所有控件拖进Swift文件以后,开始编写加减乘除,清零,小数点等功能板块的代码

基本功能实现以后,运行程序,检测每一个按键是否按照预期功能进行,最后适当美化界面即可

具体实现过程

1. 新建一个工程,

单击Main.storyboard进入故事版界面,进行界面设置


2. 搭建界面:

添加20个button控件,1个Label控件用来显示输入的运算数和结果,调整每个按键的大小,注意界面的美化。

点击这个铜钱模样的图标,添加控件

右边可修改颜色、字体、大小等

分别添加数字和运算符,最后成型苹果计算机的界面


3. 关联控件

通过使用代码来实现相应的逻辑。Xcode自动会生成一个ViewController类,它继承自UIViewController。在这里面将控件拖入Swift文件中。

定义变量

var num1,num2,result,OP:String!

var flag:Int=0

添加数字

将20个button添加到最后一个花括号前,将数字0-9命名为ClickZero-ClickNine,connection选择action

@IBAction func ClickZero(_ sender: Any)
{
    num1.append("0")
    label.text=num1
}

@IBAction func ClickOne(_ sender: Any)
{
    num1.append("1")
    label.text=num1
}
    
@IBAction func ClickTwo(_ sender: Any)
{
    num1.append("2")
    label.text=num1
}

@IBAction func ClickThree(_ sender: Any)
{
    num1.append("3")
    label.text=num1

}

@IBAction func ClickFour(_ sender: Any) {
    
    num1.append("4")
    label.text=num1

}
@IBAction func ClickFive(_ sender: Any)
{
    
    num1.append("5")
    label.text=num1

}
@IBAction func ClickSix(_ sender: Any)
{
    num1.append("6")
    label.text=num1

}
@IBAction func ClickSeven(_ sender: Any)
{
    num1.append("7")
    label.text=num1

}
@IBAction func ClickEight(_ sender: Any)
{
    num1.append("8")
    label.text=num1

}

@IBAction func ClickNine(_ sender: Any) {
    num1.append("9")
    label.text=num1
}

添加运算符

.、=、C、+、-、*、/代码,操作步骤和上面一样

加运算:

@IBAction func ClickPlus(_ sender: Any) {
    if flag==0
    {
        num2=num1
        num1=""
        label.text=""
        flag=1
        OP="+"
    }
    else
    {
        OP="+"                   //先判断,实现连加
    }

}

减运算:

@IBAction func ClickMinus(_ sender: Any) {
    if flag==0
    {
        num2=num1
        num1=""
        label.text=""
        flag=1
        OP="-"
    }
    else
    {
        OP="-"
    }

}

乘运算:

 @IBAction func ClickMultiply(_ sender: Any) {
    if flag==0
    {
        num2=num1
        num1=""
        label.text=""
        flag=1
        OP="*"
    }
    else
    {
        OP="*"
    }

}

除运算:

@IBAction func ClickDivide(_ sender: Any) {
    if flag==0
    {
        num2=num1
        num1=""
        label.text=""
        flag=1
        OP="/"
    }
    else
    {
        OP="/"
    }

}

小数点:

@IBAction func ClickPoint(_ sender: Any) {
    num1.append(".")
    label.text=num1

}

清零:

@IBAction func Clear(_ sender: Any) {
            num1=""
            num2=""
            label.text="0"
            flag=0
    }

等于:

@IBAction func ClickEqual(_ sender: Any) {
    var s:Double!=0
    
    if (flag==1)&&(num1 != "")&&(num2 != "")
    {
        switch OP!
        {
        case "+":
            s=Double(num1)!+Double(num2)!
        case "-":
            s=Double(num2)!-Double(num1)!
        case "*":
            s=Double(num1)!*Double(num2)!
        case "/":
            s=Double(num2)!/Double(num1)!
        default:
            print("=")
        }
        
        label.text=String(format:"%.2f",s)
        num1=""
        num2=label.text
    }

}

最后

可运行看看最终效果啦,Xcode提供的控件将计算器可视化表达出来.

这个计算器还不完善,有许多功能还要添加,最后的目标就是能让计算器符合手机APP用户的需求