[BMI 계산기] UISlider

Lena·2022년 1월 9일
0

iOS앱개발 입문기

목록 보기
14/17
post-thumbnail

비만도를 계산해주는 어플리케이션을 만들어보자. 이 어플을 통해 UISlider, 클래스, 상속, 옵셔널 바인딩 등을 공부해볼 것이다.

UISlider

UISlider는 value, minimum, maximum 세 가지 값을 설정할 수 있다. value는 현재 보이는 값이고, 최소 및 최대값 범위를 저장할 수 있다. (value를 중간값으로 정하면 어플을 처음 실행했을 때 중간에 세팅이 되므로 보기가 좋다.)

사용자가 UISlider를 움직일 때 변경된 값 출력하기

     @IBAction func heightSliderChanged(_ sender: UISlider) {
        print(sender.value)
    }
    @IBAction func weightSliderChanged(_ sender: UISlider) {
        print(sender.value)
    }

키는 소수 둘째자리 까지만, 몸무게는 정수형으로 출력하기

: formating 해준다.

    @IBAction func heightSliderChanged(_ sender: UISlider) {
        print(String(format: "%.2f",  sender.value))     
    }
    @IBAction func weightSliderChanged(_ sender: UISlider) {
        print(Int(sender.value)) // 형변환
    }

콘솔창에 출력하는 것이 아닌, 화면에서 사용자가 직접 확인하도록 해보자.

  • 키 레이블과 몸무게 레이블을 IBOutlet 연결해준다.
  • 레이블의 text 값에 formating해서 넣어준다.
       @IBOutlet weak var heightLabel: UILabel!
       @IBOutlet weak var WeightLabel: UILabel!
       
       @IBAction func heightSliderChanged(_ sender: UISlider) {
        heightLabel.text = String(format: "%.2f",  sender.value)
    }
    
 
       @IBAction func weightSliderChanged(_ sender: UISlider) {
        weightLabel.text = String(Int(sender.value))
        // weightLabel.text = String(format: %.0f", sender.value) 도 동일 
    }

오잉. 단위가 없어졌네. 단위를 다시 살리자.

    @IBAction func heightSliderChanged(_ sender: UISlider) {
        let height = String(format: "%.2f",  sender.value)
        heightLabel.text = "\(height)m"
    }
    
 
    @IBAction func weightSliderChanged(_ sender: UISlider) {
        let weight = String(Int(sender.value))
        weightLabel.text = "\(weight)kg"
    }

UISlider 이용해서 BMI 계산하기

  • Calculate 버튼을 IBAction으로 연결하기
    사용자가 계산 버튼 누를 경우 실행할 함수
  • height와 weight를 각각 IBOutlet으로 연결하기
    그래야 계산 시 사용자가 입력하는 슬라이더의 값을 받아올 수 있다.

BMI 구하기

@IBAction func calculatePressed(_ sender: UIButton) {
        
        let height = heightSlider.value
        // heightSlider의 property 중 value 값
        
        let weight = weightSlider.value
        // weightSlider의 property 중 value 값
        
        let bmi = weight / pow(height, 2)
        // let bmi = weight / (height * height) 와 동일함
        }

다음 시간에는 Multi-Screen을 생성하여 BMI 결과를 사용자에게 알려주는 것을 배울 예정이다.

0개의 댓글