swift
Swift 알람 시계 만들기
이나주니
2024. 10. 13. 14:16
반응형
#스위프트오 아이폰 앱만들기 2023편 책을 기준으로 블로그 작성 중입니다.
목적
1. 현재 시간
2. 캘린더 만들기
3. 선택 시간 날짜 출력
추가 )
현재 시간이 선택 시간과 같게 되면 1분동안 배경이 빨간색으로
1 분 지날경우 흰색으로 다시 돌아옴
정리
var - 변수
ler - 상수
@IBAction 또는 @IBOutlet 키워드를 통해 StoryBoard에서 버튼이나 레이블같은 컴포넌트와 연결
@는 컴파일러에게 어떤 속성을 가지고있다고 전하는 역할을 하는 예약어이다. 컴파일러에게 @가 붙은 명령어에 대해 어떤 attribute가 부여되었음을 말한다.
@objc를 붙이면 붙여진 swift 코드를 objective-c에서도 사용할 수 있다는 의미
import UIKit
class ViewController: UIViewController {
let timeSelector : Selector = #selector(ViewController.updateTime)
let interval = 1.0
var count = 0
var alarmTime: String?
@IBOutlet var test: UILabel!
@IBOutlet var libPickerTime: UILabel!
@IBOutlet var libCurrentTime: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)
}
@IBAction func changeDatePicker(_ sender: UIDatePicker) {
let datePickView = sender
let formatter = DateFormatter()
formatter.dateFormat = "YYYY/MM/dd HH:mm EEE"
test.text = "선택 시간 " + formatter.string(from: datePickView.date)
formatter.dateFormat = "hh:mm aaa"
alarmTime = formatter.string(from: datePickView.date)
}
@objc func updateTime() {
// libCurrentTime.text = String(count)
// count = count + 1
let date = NSDate()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"
libCurrentTime.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
}
}
}
결과 화면
날짜 선택시 시간이 같으면
반응형