Swift UIKit (2) - 데이트 피커 & 타이머 구현 (Date Picker, Timer)

soy·2023년 12월 3일
0

iOS-UIKit

목록 보기
10/22

DataPicker로 Timer 만들기

내가 쓴 코드

//
//  ViewController.swift
//  DatePickerMission
//
//  Created by seohuibaek on 2022/10/05.
//

import UIKit

class ViewController:UIViewController {
    let timeSelector: Selector = #selector(ViewController.updateTime)
    let interval = 1.0
    var count = 0
    
    var alarmTime: String?
    
    @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)
        
        formatter.dateFormat = "hh:mm aaa"
        alarmTime = formatter.string(from: datePickerView.date)
    }
    
    @objc func updateTime() {
        //lblCurrentTime.text = String(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)
        
        formatter.dateFormat = "hh:mm aaa"
        let currentTime = formatter.string(for: date as Date)
        
        if (alarmTime == currentTime) {
            view.backgroundColor = UIColor.red
        }
        else{
            view.backgroundColor = UIColor.white
        }
    }
    
}

실행화면

피드백

1) 이번 코드는 예제 코드와 같음
2) 60초 동안만 화면을 어떻게 바꿀지 많이 고민했는데 그냥 dateformat을 초 단위에서 분 단위만 표기되도록 하면 됐다 (분 단위까지만 표기하면 같은 시간동안(60초간) 화면이 바뀜)
3) 사실 모르겠어서 예제 코드 보자마자 데이트 포맷을 왜 다시 설정했는지 깨달음..

profile
soysoisoyysauce~

0개의 댓글