import Foundation
func calcBMI(weight : Double, height : Double) -> String{
let bmi = weight / (height*height*0.0001) // kg/m*m let shortenedBmi = String(format: "%.1f", bmi)
var body = ""
if bmi >= 40{
body = "3단계 비만"
} else if bmi >= 30 && bmi < 40 {
body = "2단계 비만"
} else if bmi >= 25 && bmi < 30 {
body = "1단계 비만"
} else if bmi >= 18.5 && bmi < 25 {
body = "정상"
} else {
body = "저체중"
}
return "BMI:\(shortenedBmi), 판정:\(body)" }
print(calcBMI(weight:62.5, height: 172.3))
import Foundation
func calcBMI(weight : Double, height : Double) -> String {
let bmi = weight / (height * height * 0.0001) // kg/m*m
let shortenedBmi = String(format: "%.1f", bmi)
var body = ""
switch bmi {
case 40...:
body = "3단계 비만"
case 30..<40:
body = "2단계 비만"
case 25..<30:
body = "1단계 비만"
case 18.5..<25:
body = "정상"
default:
body = "저체중"
}
return "BMI:\(shortenedBmi), 판정:\(body)"
}
print(calcBMI(weight: 62.5, height: 172.3))
뤼튼이 바꿔준 switch ~ case문이다.

일단 이렇게 디자인을 했다. 이제 각 텍스트 필드와 버튼에 할당을 하고 계산식만 적용하면 잘 작동할 것이다.

이미지 파일은 일반적으로 Assets 폴더에 넣어둔다. 나중에 이미지 필드에서 불러오면 된다.


키보드 타입을 숫자만 받도록 변경하였다.

각종 이슈들을 볼 수 있다. 실행은 할 수 있지만 되도록 해결하는 것이 좋다.

옆으로 돌렸을 때 이런 문제가 발생하기 때문인데 일단은 그냥 넘어가도록 하자.

이렇게 작성해 주면 버튼의 모서리를 둥글게 만들어 줄 수 있다.



https://developer.apple.com/documentation/swiftui/textfield
TextField | Apple Developer Documentation
A control that displays an editable text interface.
developer.apple.com
https://developer.apple.com/documentation/uikit/uikeyboardtype
UIKeyboardType | Apple Developer Documentation
Constants that specify the type of keyboard to display for a text-based view.
developer.apple.com
앞서 설정했던 숫자만 받는 키보드 관련해서 찾아보았다.

이렇게 이모지를 찾아서 넣어줄 수도 있다.

이렇게 연결 관계를 잘 파악해야 한다.

계산하는 코드 중 텍스트 필드의 값을 가져올 때 !를 두 개나 사용한다 Optional이기 때문에 유의해서 사용해야 한다.

이렇게 작성해주면 이제 앱에서도 결과를 볼 수 있다!



이렇게 키와 체중을 입력하지 않았을 때의 처리를 해줄 수 있다.
만약 둘 중 하나라도 입력하지 않고 실행하면 오류가 발생한다.

글자 색깔을 다르게 지정했다.




이렇게 결과에 따라서 배경색을 어떻게 할지 설정했다. 위험도가 높을수록 색이 빨간색에 가까워진다.
그리고 모서리 부분도 둥글게 표시되도록 했다.
앞의 버튼에서는 Identity inspector상에서 변경했었는데 이번에는 코드 상에서 바꿔보았다.

똑같은 앱을 한번 더 만들어 보았다. 다시 만드니까 몇 분 안걸린다.
'공부 > Swift' 카테고리의 다른 글
| [iOS][1주차] 들어가기 (0) | 2024.03.07 |
|---|---|
| [Swift][13주차] BMI 계산기 (0) | 2023.11.27 |
| [Swift][11주차] 소스 실습 및 BMI 계산기 만들기1 (0) | 2023.11.13 |
| [Swift][10주차] 9주차 마무리 및 앱 만들기 (0) | 2023.11.06 |
| [Swift][9주차] Xcode 및 Mac 사용 (0) | 2023.10.30 |