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
        }
    }

}

 

 

결과 화면

 

날짜 선택시 시간이 같으면

반응형