今回はUIDatePickerのdatePickerModeをcountDownTimerに変えた時の挙動を見てみました。
まずはdatePickerModeに何もセットしない場合の挙動を見ます。
プロジェクトをViewControllerを作って下のように変更します。
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let picker = UIDatePicker() picker.center = view.center view.addSubview(picker) } }
下のようにデフォルトのDatePickerが表示されます。
変更時のイベントの受け取り処理は下のとおりです。
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)) } }
変更してから日付を変更するとコンソールに変更後の日付が出てきます。
今回はこのUIDatePickerのdatePickerModeをcountDownTimerにした時の動作を確認します。
picker.datePickerMode = .countDownTimer
変更すると下のような表示になります。
試しに数字を10時間6分に変えたら下のような表示になりました。
おそらくDatePickerのdateは当日の選択時間になるのかと思います。
次はPickerに現在の日時(19時40分)をセットしてみました。
picker.date = Date()
セットしたら下のように現在の時間と同じ時間になりました。