Today I Learned

20210713 BMI calculator project -1

돌맹이시터 2021. 7. 15. 22:19

 

지금까지는 Main.storyboard에 1개의 스크린만 있는 어플만 다루었다면

BMI caculator는 2개의 스크린이 존재한다.

 

 

BMI를 측정하기 위한 데이터를 입력하는 화면과 결과화면이 따로 존재한다.

입력화면에는 키와 몸무게, 계산버튼이 있고 결과화면에는 BMI 결과가 나타나게 할 것이며, 재측정버튼이 있다.

 

 

먼저 입력화면을 보면

키와 몸무게를 입력하는 곳에 이전까지는 사용하지 않았던 'UISlider'가 있는 것을 확인할 수 있다.

 

Library - 'Slider'으로 등록할 수 있고,

Attribute inspector에서 MIN/MAX 값을 정할 수 있다.

 

 


 

Challenge )

 

Height Slider/Weight Slider를 IBAction(name: height slider / weight slider)으로 연결시켜서,

슬라이더를 이동시키면 이동된 위치에 해당하는 값이 출력되도록 만들 것

 

 

 

    @IBOutlet weak var heightValue: UILabel!
    @IBOutlet weak var weightValue: UILabel!
    
    @IBAction func heightslider(_ sender: UISlider) {
        heightValue.text = "\(sender.value)"
        
    }
    @IBAction func weightslider(_ sender: UISlider) {
        weightValue.text = "\(sender.value)"
    }

 

 

위와 같이 연결을 만들고 코드를 입력해서

우선 의도한대로 슬라이더를 움직였을 때 우측 상단에 해당 값이 출력되도록 만들었다.

 

 

 

하지만 너무 많은 자릿수가 출력되기 때문에...

키는 소수점 이하 2자리까지만, 몸무게는 소수점 부분을 제외하고 출력되도록 수정했다.

 

'String formatting' 방법을 사용해서 코드를 수정했다.

 

 

    @IBAction func heightSlider(_ sender: UISlider) {
        heightValue.text = String(format: "%.2f", sender.value)
        
    }
    @IBAction func weightSlider(_ sender: UISlider) {
        weightValue.text = String(format: "%.0f", sender.value)
    }

 

위와 같이 IBAction 코드블럭을 수정했고,

원하는 자릿수만큼만 출력되는 것을 확인했다.

 

단위(m, kg)는 어느새 사라져있어서...

단위를 뒤에 붙여줄 수 있도록 코드를 수정했다.

 

 

    @IBAction func heightSlider(_ sender: UISlider) {
        heightValue.text =  String(format: "%.2f", sender.value) + "m"
// 아래와 동일
// let height = String(format: "%.2f", sender.value)
// heightValue.text = "\(height)m"
        
        
    }
    @IBAction func weightSlider(_ sender: UISlider) {
        weightValue.text = String(format: "%.0f", sender.value) + "Kg"
// 아래와 동일
// let weight = String(format: "%.0f", sender.value)
// weightValue.text = "\(weight)Kg"
        
    }

 

 


 

 

 

'Today I Learned' 카테고리의 다른 글

20210722 BMI calculator project-3  (0) 2021.07.23
20210715 BMI caculator project -2  (0) 2021.07.17
20210712 Destiny project -3  (0) 2021.07.13
20210711 Destiny project -2  (0) 2021.07.12
20210706 Destiny project -1  (0) 2021.07.06