//
// 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) 사실 모르겠어서 예제 코드 보자마자 데이트 포맷을 왜 다시 설정했는지 깨달음..