티스토리 뷰

iOS

[UIKit] BMI 계산앱

코딩하는 브레드 2023. 4. 18. 18:09
💡 앱 설명 : 키와 몸무게를 입력하여 BMI를 계산해준다.

 

화면 구성

Main.storyboard

- Label, TextField, Button 사용

- Stack View로 Object 묶어서 배치

- Constraints로 Object 사이 간격 조정

- Tab Gesture Recognizer로 뷰의 다른 곳을 클릭 시 키보드가 사라지게 하는 설정

 

화면 기능

ViewController.swift

//
//  ViewController.swift
//  BMICalc

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var HeightField: UITextField!
    @IBOutlet weak var WeightField: UITextField!
    @IBOutlet weak var BMIField: UITextField!
    
    let numberFormatter:NumberFormatter = {
        let nf = NumberFormatter()
        nf.numberStyle = .decimal // nf.numberStyle = (NumberFormatter.Style).decimal 생략 가능
        nf.minimumFractionDigits = 0
        nf.maximumFractionDigits = 3
        return nf
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    @IBAction func BMICalculation(_ sender: Any) {
        if let HeightText = HeightField.text, let height = Double(HeightText), 
        let WeightText = WeightField.text, let weight = Double(WeightText) {
            let bmi = weight / ((height / 100) * (height / 100))
            
            BMIField.text = "\(bmi)"
            BMIField.text = numberFormatter.string(from: NSNumber(value: bmi))
        }

        view.endEditing(true) // 키보드 사라지게 하는 방법
    }
    
    @IBAction func textFieldFinishEdit(_ sender: UITextField) {
        sender.resignFirstResponder()
    }    
    
    @IBAction func textEndEditing(_ sender: Any) {
        //WeightField.resignFirstResponder()
        //HeightField.resignFirstResponder()
        view.endEditing(true)
    }
    
}

 

- 키보드의 return을 눌렀을 때 키보드가 사라지게 하는 방법

@IBAction func textFieldFinishEdit(_ sender: UITextField) {
	sender.resignFirstResponder()
}

sender가 Any이면 resignFirstResponder() 자동완성이 안됨!

 

- 화면의 외곽을 터치했을 때 키보드가 사라지게 하는 방법

@IBAction func textEndEditing(_ sender: Any) {
	view.endEditing(true)
}

'iOS' 카테고리의 다른 글

[Swift] 섭씨 화씨 온도 변환 앱  (0) 2023.04.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함