TextFieldでDatePickerを使う
参考URL
・UI Date Picker For UI Text Field With UI Tool Bar (Swift 3 + Xcode 8)
・【Swift】UIDatePicker | ポケットリファレンス サンプル付き | iOS & Android & Linux Labs
コード
@IBOutlet weak var Appreciation: UITextField! let datePicker = UIDatePicker() override func viewDidLoad() { super.viewDidLoad() createDatePicker() } func createDatePicker(){ // DatePickerModeをDate(日付)に設定 datePicker.datePickerMode = .date // DatePickerを日本語化 datePicker.locale = NSLocale(localeIdentifier: "ja_JP") as Locale // textFieldのinputViewにdatepickerを設定 Appreciation.inputView = datePicker // UIToolbarを設定 let toolbar = UIToolbar() toolbar.sizeToFit() // Doneボタンを設定(押下時doneClickedが起動) let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(doneClicked)) // Doneボタンを追加 toolbar.setItems([doneButton], animated: true) // FieldにToolbarを追加 Appreciation.inputAccessoryView = toolbar } @objc func doneClicked(){ let dateFormatter = DateFormatter() // 持ってくるデータのフォーマットを設定 dateFormatter.dateStyle = .medium dateFormatter.timeStyle = .none dateFormatter.locale = NSLocale(localeIdentifier: "ja_JP") as Locale! dateFormatter.dateStyle = DateFormatter.Style.medium // textFieldに選択した日付を代入 Appreciation.text = dateFormatter.string(from: datePicker.date) // キーボードを閉じる self.view.endEditing(true) }
UIDatePickerMode
UIDatePickerでModeを設定することで”DatePickerの”フォーマットを設定できる模様。
取得してくるデータのフォーマットはdateFormatterの各プロパティで設定できる。
プロパティ一覧
// 時間
UIDatePickerMode.time
// 日付
UIDatePickerMode.date
// 日付と時間
UIDatePickerMode.dateAndTime
// タイマー
UIDatePickerMode.countDownTimer