선생님이 BMI 측정기를 한번 만들어보라고 해서 응용해서 직접 만들어보았다.
View는 위와같이 구성했다.
IBOulet과 Action함수를 아래와 같이 연결해줬다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tfHeight: UITextField!
@IBOutlet weak var tfWeight: UITextField!
@IBOutlet weak var lblMessage: UILabel!
@IBOutlet weak var imgViewMessage: UIImageView!
var statement = ""
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
imgViewMessage.image = UIImage(named: "BMI.png")
lblMessage.text?.removeAll()
}
@IBAction func btnCalc(_ sender: UIButton) {
// String타입을 Double타입으로 변환 + cm를 M 단위로 변환
let doubleHeight = Double(tfHeight.text!)! / 100
let doubleWeight = Double(tfWeight.text!)
// bmiCalc 상수에 bmi계산값 Double 타입으로로 저장
let bmiCalc : Double = doubleWeight! / (doubleHeight * doubleHeight)
// 소수점 첫째자리까지 반올림
let roundBmi = round(bmiCalc * 100) / 100
switch roundBmi {
case 0...18.4: statement = "저체중"
imgViewMessage.image = UIImage(named: "저체중.png")
case 18.5...22.9: statement = "정상"
imgViewMessage.image = UIImage(named: "정상.png")
case 23...24.9: statement = "과체중"
imgViewMessage.image = UIImage(named: "과체중.png")
case 25...29.9: statement = "비만"
imgViewMessage.image = UIImage(named: "비만.png")
default : statement = "고도비만"
imgViewMessage.image = UIImage(named: "고도비만.png")
}
lblMessage.text = "현재 BMI는 \(roundBmi)이고, \(statement) 입니다."
/*
편의를 위해서 위에선 조건문의 형태를 switch문으로 풀어냈지만, 이를 if문으로 표현한다면 아래와 같다.
if roundBmi <= 18.4 {
statement = "저체중"
imgViewMessage.image = UIImage(named: "저체중.png")
}else if roundBmi >= 18.5 && roundBmi <= 22.9 {
statement = "정상"
imgViewMessage.image = UIImage(named: "정상.png")
}else if roundBmi >= 23 && roundBmi <= 24.9 {
statement = "과체중"
imgViewMessage.image = UIImage(named: "과체중.png")
}else if roundBmi >= 25 && roundBmi <= 29.9 {
statement = "비만"
imgViewMessage.image = UIImage(named: "비만.png")
}else{
statement = "고도비만"
imgViewMessage.image = UIImage(named: "고도비만.png")
}
*/