본문 바로가기
computing

20251117 - iOS12

by greentworkshop 2025. 11. 17.

identity inspector

기말 시험문제에 출제될 개념

keyboard type

let height = Double(txtHeight.text!)! 
let weight = Double(txtWeight.text!)! 
print(height,weight)
let bmi = weight/(height*height*0.0001)
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 = "저체중" }
print("BMI:\(shortenedBmi), 판정:\(body)")


//var txtHeight: UITextField! var txtWeight: UITextField!

text의 자료형은 아무런 값도 없을 수도 있기에 옵셔널형
중요한 개념

문자열"12"을 숫자로 바꾸면 옵셔널 값으로 변환됨,

이유 : "hi"같은 문자열이 입력되는 경우 정상적인 변환이 불가능함, 따라서 기본적으로 옵셔널로 봔환하는 것이 안전

 

//
//  ViewController.swift
//  BBMIcjh
//
//  Created by 소프트웨어컴퓨터 on 2025/11/17.
//

import UIKit

class ViewController: UIViewController {
    @IBOutlet var txtHeight: UITextField!
    @IBOutlet var txtWeight: UITextField!
    @IBOutlet var lblResult: UILabel!
    @IBAction func calcBmi(_ sender: UIButton) {
        if txtHeight.text == "" || txtWeight.text == "" {
            print("Input error")
            lblResult.text = "키와 체중을 입력하세요"
            return
        } else {
            let height = Double(txtHeight.text!)!
            let weight = Double(txtWeight.text!)!
            print(height,weight)
            let bmi = weight/(height*height*0.0001)
            let shortenedBmi = String(format: "%.1f", bmi)
            var body = ""
            var color = UIColor.white
            if bmi >= 40 {
                color = UIColor(displayP3Red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0)
                body = "3단계 비만"
            } else if bmi >= 30 && bmi < 40 {
                color = UIColor(displayP3Red: 0.7, green: 0.0, blue: 0.0, alpha: 1.0)
                body = "2단계 비만"
            } else if bmi >= 25 && bmi < 30 {
                color = UIColor(displayP3Red: 0.4, green: 0.0, blue: 0.0, alpha: 1.0)
                body = "1단계 비만"
            } else if bmi >= 18.5 && bmi < 25 {
                color = UIColor(displayP3Red: 0.0, green: 0.0, blue: 1.0, alpha: 1.0)
                body = "정상"
            } else {
                color = UIColor(displayP3Red: 0.0, green: 1.0, blue: 0.0, alpha: 1.0)
                body = "저체중" }
            print("BMI:\(shortenedBmi), 판정:\(body)")
            lblResult.backgroundColor = color
            lblResult.clipsToBounds = true
            lblResult.layer.cornerRadius = 10 // 코드로 모서리 깎는법
            lblResult.text = "BMI:\(shortenedBmi), 판정:\(body)"
            
            //var txtHeight: UITextField! var txtWeight: UITextField!
        }
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    
}

clipsToBounds를 먼저 열어야 함, 그 다음 얼만큼 깎을지 지정 -

얘도 시험문제 -> 테두리 깎는 두 가지 방법이 무엇인가? 라면서 출제 가능

 

ㄹㄹ

 

위 친구를 z order라고 부름, 순서는 드래그 앤 드롭으로 수정 가능

z order에서 attribute를 선택한 후 inspector창에서 투명 속성 지정 가능

segmented 기능
tab bar controller
처음 생성하면 이름이 다 item이니까 바꿔주삼
동영상 파일 삽입시 add to targets체크 생략시 프로젝트 내에서 사용할 수 없음
새로운 화면을 만들면 오른쪽 창을 띄워서 알맞은 코드에 연결하는 작업 필요
Cannot find 'AVPlayer'in scope - 임포트 해줬는지 확인

여기도 시험출제 가능

//비디오 삽입 코드

import UIKit
import AVKit

class VideoViewController: UIViewController {

    @IBAction func video(_ sender: Any) {
        let videoPath: String? = Bundle.main.path(forResource: "bmi", ofType: "mp4")
        let videoURL = URL(filePath: videoPath!)
        let player = AVPlayer(url: videoURL)
        
        let playerController =  AVPlayerViewController()
        playerController.player = player
        present(playerController, animated: true)
        player.play()
    }
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

}

시험

present, default, guard-let 활용

 

'computing' 카테고리의 다른 글

android11  (0) 2025.11.13
20251103_iOS10  (0) 2025.11.03
20251030_android8  (0) 2025.10.30
20251027_iOS9  (0) 2025.10.27
20251013_iOS_7주차  (0) 2025.10.13