데이트피커란?
날짜와 시간을 선택할 수 있게 해주는 객체. (시계/미리 알람/캘린더 등)
lblPickerTime.text = "선택시간: " + formatter.string(from: datePickerView.date)
// = 앞뒤로는 반드시 스페이스 필요, 없으면 오류
import UIKit
class ViewController: UIViewController {
@IBOutlet var lblCurrentTime: UILabel!
@IBOutlet var lblPickerTime: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func changeDatePicker(_ sender: UIDatePicker) {
let datePickerView = sender //datePickerView 라는 상수에 UIDatePicker의 자료형 인수 (sender)가 저장됨.
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm EEE"
lblPickerTime.text = "선택시간: " + formatter.string(from: datePickerView.date)
}
}
2. 타이머 기능 추가하기
import UIKit
class ViewController: UIViewController {
let timeSector: Selector = #selector(ViewController.updateTime)
let interval = 1.0
var cnt = 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: timeSector, userInfo: nil, repeats: true)
//target: 동작될 view, selector: 타이머가 구동될 때 실행할 함수
}
@IBAction func changeDatePicker(_ sender: UIDatePicker) {
let datePickerView = sender //datePickerView 라는 상수에 UIDatePicker의 자료형 인수 (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(cnt)
cnt += 1
}
}
타이머 정상 작동 확인
@objc func updateTime(){
// lblCurrentTime.text = String(cnt)
// cnt += 1
let date = NSDate() // 현재 시간을 NSDate 함수를 통해서 가져옴
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"
lblCurrentTime.text = "현재시간: " + formatter.string(from: date as Date)
}
정상 작동
3. 도전과제 : 알람 시계 만들기
(조건)
1단계: 현재 시간이 선택 시간과 같게 되면 1분동안 배경이 빨간색으로 변하게 만든다.
2단계: 1분이 지나 시간이 달라지면 다시 정상적인 배경화면으로 변경되게 만든다.
(힌트)
배경화면 변경
시간 비교
import UIKit
class ViewController: UIViewController {
let timeSector: Selector = #selector(ViewController.updateTime)
let interval = 1.0
var cnt = 0
var alarmTime = ""
@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: timeSector, userInfo: nil, repeats: true)
//target: 동작될 view, selector: 타이머가 구동될 때 실행할 함수
}
@IBAction func changeDatePicker(_ sender: UIDatePicker) {
let datePickerView = sender //datePickerView 라는 상수에 UIDatePicker의 자료형 인수 (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(cnt)
// cnt += 1
let date = NSDate() // 현재 시간을 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(from: date as Date)
if (alarmTime == currentTime){
view.backgroundColor = UIColor.red
}
else{
view.backgroundColor = UIColor.white
}
}
}
'Study > Swift' 카테고리의 다른 글
[swift error] NSBundle principal class is nil because all fallbacks have failed (0) | 2024.12.19 |
---|---|
[스위프트 기초] 5장 피커뷰 사용해보기 (1) | 2024.12.18 |
[스위프트 기초] 3장 이미지 뷰 : 앨범 기본 기능 (0) | 2024.12.16 |
[스위프트 기초] 1장, 2장 : Hello world, outlet 객체 사용해보기, 시물레이션 사용해보기 (1) | 2024.12.10 |
[Swift] Kmooc - swift 프로그래밍 (청강) 2강 : 상수, 변수, 데이터 타입 (0) | 2024.07.10 |
댓글