【iOS app 學習筆記】BMI Calculator
Published in
Apr 1, 2022
簡單結合程式做出來的小小app
前端頁面的部分就是拉拉元件放上去,就不多做贅述,這次只有一個新東西,是之前沒設定過的,”Keyboard Type”
在Text Field中的Text Input Traits可以設定Keyboard Type,並且有許多選項可以選擇,而選擇Number Pad就能方便使用者輸入數字。
接下來就來講到程式的部分,只有簡單的幾行
@IBOutlet weak var heightTextField: UITextField!@IBOutlet weak var weightTextField: UITextField!@IBOutlet weak var notificationLabel: UILabel!@IBOutlet weak var bmiLabel: UILabel!
首先先將UI元件拉線到程式碼中,並將其命名
@IBAction func compute(_ sender: Any) { if let heightText = heightTextField.text, let weightText = weightTextField.text, let height = Double(heightText), let weight = Double(weightText){ view.endEditing(true) let bmi = weight/pow((height/100), 2) bmiLabel.text = "BMI = " + String(format: "%.2f", bmi) if bmi < 18.5{ notificationLabel.text = "你太輕了!" }else if bmi < 24{ notificationLabel.text = "正常喔!" }else if bmi < 27{ notificationLabel.text = "稍微有點重了" }else if bmi < 30{ notificationLabel.text = "稍微有點肥胖..." }else if bmi < 35{ notificationLabel.text = "中度肥胖餒" }else{ notificationLabel.text = "從今天開始減肥吧" } }else{ notificationLabel.text = "請完整輸入資訊!" }}
然後將所有的if判斷式寫進compute這個function裡,當使用者按下compute按鈕時,就會觸發這個function。
會觸發的原因不是因為名稱一樣,而是因為有拉線(@IBAction func)
在程式碼中,有用到比較特別的語法是if let,這在我之前學過的程式語言中沒看過,if let是為了避免空值的語法(我的理解是這樣😭)
詳細介紹可以參考Peter的文章