#HW換算 App,BMI計算機
又到了寫作業的時間了,這次來嘗試做看看BMI計算機功能,本來是想把整個app做完,不過這次作業重點在if的判斷,就來稍微說明一下我是如何做BMi計算部分。
首頁有四顆Button分別會轉移到四個畫面,左上按了以後會跳到第一個畫面,然後第二個畫面一開始做的時候放上四元件兩個textfield輸入身高體重,一個button當計算用,一個label作顯示結果。
運作的邏輯是這樣,使用者輸入身高跟體重,按下計算按鈕,顯示在label上所以在button裡面寫下計算的過程,要取得我們輸入的字串可以用.text這個方法,但我們點擊該物件及option會發現他的型別是一個optional,所以要做個optional binding 去解開才不會出錯,
確定解開後,因為使用者可能會故意輸入空字串,所以我再往下判斷不等於空字串
於是我寫了這樣
因為型別關西會無法運算,於事我在做一層判斷轉換成Duoble型別,順利存進去後就可以做計算了
然後編譯你會發現就可以順利計算了,但還是發現很多問題,比如說當晚成一次計算後,再清空格子,太麻煩了,然後如果只輸入其中一個,另一個是沒輸入,程式會完全不動好像壞掉,於是我做了以下修改。
到這裡大致上感覺沒問題了,然後我就很犯賤的打了字進去,不出意外完全沒反應,繼續修改…
然後我在測試一下,每次計算完都要重新清空textfield,所以要將每個狀況都結束都要清空如下
最後做一點修改,我把巢狀if最外層改成另一個寫法,然後Label想讓他每次按下按鈕都有動畫
動畫的控制因為我想讓文字每次都浮現出來,所以只控制透明度的部分
然後繼續測試會發現你用手機測試虛擬盤按下去return沒反應,鍵盤也下不去,查了一下resignFirstResponder()這個來解決,然後按下虛擬鍵盤要如同按下計算有反應的話要去服從UITextFieldDelegate這個協定
這樣return按下去後不知道執行什麼會去問.delegate這個屬性,然後要在寫這個方法去實作
結果如下