iOS 进阶 —— 计算器Calculator

前言

以前作的是TipCalculator,功能实在是太过简单。
期间看了斯坦福大学教iOS10 Swift开发的公开课,正好有讲到计算器的设计例子,因而就想着实现一个,正好iPad Pro上不知道为何没有原装的计算器app,用本身开发的app岂不是很酷呢?git

设计思路

  • 首先咱们要知道想要这个app,干什么。很简单,数学计算。
  • 其次,咱们须要搭好本身的界面。界面上要放的组件很简单,一堆规律排放的按钮:UIButton,以及一个结果显示条:UILabel。
  • 对于计算器上的按钮,咱们须要它作的就是获得它对应的值或运算符。
  • 而UILabel,固然就是显示运算过程以及结果啦。

Step by Step

首先咱们让按钮来传值:

  • 对于每个button,control+drag,链接到controller,(嫌一个个连太麻烦?直接连第一个button,而后其余的都copy就好啦)
    而后写一个方法,就叫它为SendDigit,很少说,来看具体代码:
@IBAction func SendDigit(_ sender: UIButton) {
        let digit = sender.currentTitle!
          print(digit + " is clicked")
}

在听课的过程当中,也弄明白了为何要在text后面加一个!,由于button上面的值是optional的,button上的值多是empty的,而!就是为了获得它的值并传给digit,表示默认为非nil,直接解包(unwrap)进行处理。
不然就会出现 (optional)7 is clicked 的状况。swift

好的,如今咱们已经成功实现button传值了。app

将点击button的值显示在UILabel上。

@IBOutlet weak var showResult: UILabel!
@IBAction func SendDigit(_ sender: UIButton) {
        let digit = sender.currentTitle!
          showResult.text! = digit
}

这里对showResult.text后添加!也是与上面同理测试

好了,如今运行,测试,能够显示了!设计

但是,每次只能显示一个button的数字,那要输两位数以上该怎么办呢?code

那就,这样?ip

let textCurrently = showResult.text!
showResult.text! = textCurrently + digit

能够输入两位数了!
可是,每次输的时候,会把前面默认的0带上,这样显然是不正确的。
因而,咱们就能够想一种方法来让程序判断,用户是否正在输入。
设一bool 变量,初始设为false,若是正在输入,就让 按的button传的数字跟在Label上的数字后面。若是不是,就替换更新Label上的数字。开发

实现常量显示

接下来,尝试着添加特殊常数button,点击button,即显示该常数值内容。
原理很简单,一样是send digit。数学

--- 持续更新 ---it

相关文章
相关标签/搜索