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

相關文章
相關標籤/搜索