iOS 정리/ios 응용해보기

데이트 픽커뷰 이용해서 알람시계 구현

리카르도K 2017. 12. 13. 12:30

데이트 픽커뷰 이용해서 알람시계 구현

1.현재 시간이 선택시간과 같게 되면 1분동안 배경화면이 빨간색으로 변하게 만든다.

2.1분이 지나 시간이 달라지면 다시 정상적인 배경화면이 된다.


//

//  ViewController.swift

//  DatePicker2

//

//  Created by MacBookPro on 2017. 12. 12..

//  Copyright © 2017년 MacBookPro. All rights reserved.

//


import UIKit


class ViewController: UIViewController {

    

    //타이머가 구동되면 실행될 함수를 지정

    let timeSelector: Selector = #selector(ViewController.updateTime)

    

    //타이머가 구동되면 실행될 함수를 지정

    let sixSelector: Selector = #selector(ViewController.sixTime)

    

    //타이머 간격

    let interval = 1.0

    //타이머가 설정한 간격대로 잘 작동되는지 확인하기 위한 변수

    var count = 0

    

    //선택된 데이터 포멧

    let selFormatter = DateFormatter()

    

    @IBOutlet weak var lbCurrentTime: UILabel!

    @IBOutlet weak var lbSelectTime: UILabel!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        //타이머가 1초마다 구동될때 실행될 함수지정

        Timer.scheduledTimer(timeInterval: interval, target: self, selector: timeSelector, userInfo: nil, repeats: true)

        

        

    }

    

    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    @IBAction func datePicker(_ sender: UIDatePicker) {

        

        //let datePickerView = sender

        

        //selFormatter = DateFormatter()

        

        selFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"

        

        lbSelectTime.text = selFormatter.string(from: sender.date)

    }

    

    //1씩 증가하는 함수 (현재시간)

    @objc func updateTime(){

        //lbCurrentTime.text = String(count)

        //count += 1

        

        let date = NSDate()

        let formatter = DateFormatter()

        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss EEE"

        lbCurrentTime.text = formatter.string(from: date as Date)

        

        

        if lbCurrentTime.text == lbSelectTime.text{

            

            Timer.scheduledTimer(timeInterval: interval, target: self, selector: sixSelector, userInfo: nil, repeats: true)

        }

    }

    

    

    @objc func sixTime(){

        count += 1

        if count < 60{

            view.backgroundColor = UIColor.purple

        }else if(count > 60) {

            view.backgroundColor = UIColor.white

        }

    }

}