BMI Calculator (1)
UI Slider의 값을 미리 설정 해줄 수 있다.
slider가 움직일때 console에서 값이 변하도록 만들어 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var maximum : Double = 0.0
var minimum : Double = 0.0
var currentValue : Double = 0.0
@IBAction func heightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
print(currentValue)
}
@IBAction func weightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
print(currentValue)
}
이렇게 코드를 작성하였다.
계속 프린트가 되는 건데 내가한것과는 다르다..
코드차이는 없었다 그냥 창이 어떻게 보여지느냐의 차이였다.
그렇다면 소숫점을 둘째자리까지만 나오게 해보자.
1
2
3
4
5
6
7
8
9
10
@IBAction func heightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
print(String(format:"%.2f", currentValue))
}
@IBAction func weightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
print(String(format:"%.2f", currentValue))
}
소수점이 안나오게하기위해 Int를 씌웠다.
1
2
3
4
@IBAction func weightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
print(Int(currentValue))
}
값을 변할때 console이 아닌 label에 값이 표시가 되게 구현해보자
1
2
3
4
5
6
7
8
9
10
11
12
13
@IBAction func heightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
heightLabel.text = String(format:"%.2f", currentValue)
//print(String(format:"%.2f", currentValue))
}
@IBAction func weightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
weightLabel.text = String(Int(currentValue))
//print(Int(currentValue))
}
뭐 이정도는 가볍지.
위와 아래 통일성을 주기위해 수정을 해보자 (String(format:”%.2f”, currentValue)) (String(Int(currentValue))
-> (String(format:”%.0f”, currentValue))
하지만 처음에는 m / kg같은 단위가 있는데 수치만 나온다.
단위도 나오게 수정을 해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
@IBAction func heightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
heightLabel.text = "\(String(format:"%.2f", currentValue))m"
//print(String(format:"%.2f", currentValue))
}
@IBAction func weightSliderChanged(_ sender: UISlider) {
currentValue = Double(sender.value)
weightLabel.text = "\(String(format:"%.0f", currentValue))Kg"
//print(Int(currentValue))
}
현재 slider들을 움직이고 calculate버튼을 누르면 현재 위치한 슬라이더의 값이 나오게 해보자.
가장 쉬운 방법은 slider들의 IBoutlet을 생성해주고 그 value를 바로 찍어내면 된다.
1
2
3
4
@IBAction func calculatePressed(_ sender: UIButton) {
print(heightSlider.value)
print(weightSlider.value)
}
위에 주어진 식을 이용하여 BMI를 출력해보자.
1
2
let bmi = weight / (height * height)
let bmi = weight / pow(height,2)
둘은 같은 표현이다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.