본문 바로가기
computing

20251103_iOS10

by greentworkshop 2025. 11. 3.

활용된 예제코드 출처

송호정이범근 저 이지스퍼블리싱 2025년 03월.  

일반적으로 디자인은 safe area 내부에만 작성한다
우측 레이어에 표시된 속성창(배경색 등...)

어시스턴트 에디터 - ctrl, cmd, alt   + enter

아래의 커맨드 창이 뜨고 명령어와

ui의 연결관계를 지정할 수 있음

alt key 누른 채로 좌클릭 - 상세정보

outlet 과   잘 연결되었는지 확인하는 커넥션스 인스펙터

전구를 켜고 끄거나 축소 확대하는 앱

//
//  ViewController.swift
//  DatePicker
//
//  Created by Ho-Jeong Song on 2021/11/24.
//

import UIKit   // UIKit 프레임워크: iOS UI 구성요소(UILabel, UIButton, UIDatePicker 등)를 사용하기 위해 필요

class ViewController: UIViewController {
    
    // MARK: - Properties
    
    // Timer가 반복적으로 호출할 메서드를 지정하는 Selector (updateTime 메서드를 1초마다 호출)
    let timeSelector: Selector = #selector(ViewController.updateTime)
    
    // Timer의 호출 주기(초 단위). 1.0초마다 한 번씩 실행
    let interval = 1.0
    
    // 테스트용 카운터 변수 (현재 코드에서는 주석 처리되어 사용되지 않음)
    var count = 0

    // MARK: - IBOutlets (스토리보드 UI 연결 변수)
    
    @IBOutlet var lblCurrentTime: UILabel!   // 화면에 현재 시간을 표시하는 레이블
    @IBOutlet var lblPickerTime: UILabel!    // 사용자가 DatePicker에서 선택한 시간을 표시하는 레이블
    
    // MARK: - View Lifecycle
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // 뷰가 메모리에 로드될 때 한 번 호출됨
        
        // Timer 설정: interval(1초)마다 updateTime 함수를 자동 호출
        // target은 self(ViewController), selector는 timeSelector(updateTime), 반복(repeats: true)
        Timer.scheduledTimer(timeInterval: interval,
                             target: self,
                             selector: timeSelector,
                             userInfo: nil,
                             repeats: true)
    }

    // MARK: - IBAction: DatePicker 값 변경 시 호출되는 메서드
    
    @IBAction func changeDatePicker(_ sender: UIDatePicker) {
        // sender로 전달된 UIDatePicker 인스턴스를 지역 변수에 저장
        let datePickerView = sender
        
        // 날짜 포맷터 생성
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm EEE"  // 출력 형식 예: 2021-11-24 15:30 Wed
        
        // 선택된 날짜(DatePicker의 date 속성)를 문자열로 변환 후 레이블에 표시
        lblPickerTime.text = "선택시간: " + formatter.string(from: datePickerView.date)
    }

    // MARK: - Timer에서 주기적으로 호출되는 메서드
    
    @objc func updateTime() {
        // 위의 count 관련 코드는 테스트용이며 현재 사용되지 않음
        // lblCurrentTime.text = String(count)
        // count = count + 1

        // 현재 시각(Date 객체) 가져오기
        let date = NSDate()

        // 날짜 포맷터 생성
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"  // 시, 분, 초까지 표시. 예: 2021-11-24 15:31:07 Wed

        // 포맷팅된 현재 시각을 lblCurrentTime에 표시
        lblCurrentTime.text = "현재시간: " + formatter.string(from: date as Date)
    }
}

tab bar controller를 활용해 여러 화면들을 연결

//DateViewController.swift

//
//  ViewController.swift
//  DatePicker
//
//  Created by Ho-Jeong Song on 2021/11/11.
//

import UIKit

class DateViewController: UIViewController {
    let timeSelector: Selector = #selector(DateViewController.updateTime)
    let interval = 1.0
    var count = 0

    @IBOutlet var lblCurrentTime: UILabel!
    @IBOutlet var lblPickerTime: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)
    }

    @IBAction func changeDatePicker(_ sender: UIDatePicker) {
        let datePickerView = sender
        
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm EEE"
        lblPickerTime.text = "선택시간 : " + formatter.string(from: datePickerView.date)
    }
    
    @objc func updateTime() {
//        lblCurrentTime.text = String(count)
//        count = count + 1
        
        let date = NSDate()

        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"
        lblCurrentTime.text = "현재시간 : " + formatter.string(from: date as Date)
    }
}

navigation controller -

테이블 뷰는 이번 학기에는 다루지 않음

 


BMI 판정 앱 개발

유사한 예시들 검색 - 시장조사

 

https://developer.apple.com/documentation/swift/string/init(format:_:)

시험에 항상 출제되는 내용

 

 

 


layout inspector - 시험 출제

 

키보드 타입 지정 (decimal은 정수만 취급)

//
//  ViewController.swift
//  BMIcjh
//
//  Created by Induk-cs-1 on 2025/11/03.
//

import UIKit


class ViewController: UIViewController {
    @IBOutlet weak var txtHeight: UITextField!
    @IBOutlet weak var txtWeight: UITextField!
    @IBOutlet weak var lblResult: UILabel!
    @IBAction func calcBmicalcBmi(_ sender: UIButton) {
    }
    
    override func viewDidLoad() {  //앱 실행시 자동으로 실행되는 소스 - 보통 초기화하고 싶은 소스를 여기 입력함
        super.viewDidLoad()
        print("Start")
    }
}

'computing' 카테고리의 다른 글

20251117 - iOS12  (0) 2025.11.17
android11  (0) 2025.11.13
20251030_android8  (0) 2025.10.30
20251027_iOS9  (0) 2025.10.27
20251013_iOS_7주차  (0) 2025.10.13