kobasaです(´ω`*)
期限日の入力をホイールで選択できるようにしていました。
資料を漁りながらテキストフィールドにホイールで選択した日付を反映するミニアプリで実験。
class ViewController: UIViewController {
@IBOutlet weak var limit: UITextField!
var datePicker: UIDatePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
// ピッカーの設定
datePicker.datePickerMode = UIDatePicker.Mode.date
datePicker.timeZone = NSTimeZone.local
datePicker.locale = Locale.current
datePicker.preferredDatePickerStyle = .wheels
// 決定バーの生成
let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 35))
let spaceItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil)
let doneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(expirationDateDone))
toolbar.setItems([spaceItem, doneItem], animated: true)
// インプットビュー変更
limit.inputView = datePicker
limit.inputAccessoryView = toolbar
}
// 決定ボタンを押したときの処理
@objc func expirationDateDone() {
// 入力画面が閉じる
limit.endEditing(true)
// 日付のフォーマット
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
limit.text = "\(formatter.string(from: datePicker.date))"
}
}
ピッカーの設定でUIDatePicker.Mode.date
にすると年/月/日の設定になります。
また.preferredDatePickerStyle = .wheels
の設定でホイール表示になります。
何も設定しないと見慣れない表示になりますw
インプットビューの変更を記述することでテキストフィールドをタップしたときに
キーボード以外の表示にすることができます。今回は設定したdatePickerですね。
ホイールで日付を選択してdoneボタンを押す処理では、
フォーマットで表示される文字を設定しています。datePicker.date
でホイールで選択された日付を取得します。
それっぽい感じになりました!
あとは日付を日本語に設定することと、
日付の範囲を指定したいです。
ところで紙のクーポン券の期限って
どのくらいが一般的なんでしょうね?
本日〜2ヶ月後までくらい?
コメント