しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

UIDatePickerのdatePickerModeをcountDownTimerにした時の挙動確認

今回はUIDatePickerのdatePickerModeをcountDownTimerに変えた時の挙動を見てみました。
まずはdatePickerModeに何もセットしない場合の挙動を見ます。

プロジェクトをViewControllerを作って下のように変更します。

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let picker = UIDatePicker()
        picker.center = view.center
        view.addSubview(picker)
    }
}

下のようにデフォルトのDatePickerが表示されます。

f:id:llcc:20211219192539p:plain

変更時のイベントの受け取り処理は下のとおりです。

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let picker = UIDatePicker()
        picker.center = view.center
        view.addSubview(picker)
        picker.addTarget(self, action: #selector(self.datePickerValueChanged(sender:)), for: .valueChanged)
    }

    @objc func datePickerValueChanged(sender: UIDatePicker) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy/MM/dd HH:mm"
        print(dateFormatter.string(from: sender.date))
    }
}

変更してから日付を変更するとコンソールに変更後の日付が出てきます。

f:id:llcc:20211219192712p:plain

今回はこのUIDatePickerのdatePickerModeをcountDownTimerにした時の動作を確認します。

picker.datePickerMode = .countDownTimer

変更すると下のような表示になります。

f:id:llcc:20211219193700p:plain

試しに数字を10時間6分に変えたら下のような表示になりました。
おそらくDatePickerのdateは当日の選択時間になるのかと思います。

f:id:llcc:20211219193746p:plain

次はPickerに現在の日時(19時40分)をセットしてみました。

picker.date = Date()

セットしたら下のように現在の時間と同じ時間になりました。

f:id:llcc:20211219194232p:plain