質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3950閲覧

TextFieldをタップした時に日付ピッカーをドラムロールで表示したい。

abcdefgg

総合スコア4

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/10/16 14:40

TextFieldをタップした時に日付ピッカーをドラムロールで表示したい。

表題の通り、日付ピッカーをドラムロールで表示したいと考えています。
以下の参考サイト【swift】UIDatePickerを作ってみる(日付選択ドラムロール)を見ながら実装したところ、ドラムロールではなく、画像のように表されてしまいました。
参考サイトでは、下記の実装でドラムロールで表示されており、恥ずかしながらなぜそうなるのかが理解できておりません・・・
(環境が違いすぎる??)
###表示されるもの(iPad8th)
イメージ説明
他の型が質問されている内容も拝見したのですが、解決できずにおります。
ちょっとしたことに気づけていないだけだと思うのですが、ご教示いただきたいです。

####環境
OS Big Sur11.6
Swift 5
xcode 12.4

Swift5

1class DatePicker: UIViewController { 2 3 let datePicker = UIDatePicker() 4 @IBOutlet weak var worikingLacationTextField: UITextField! 5 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // ピッカー設定 10 createDatePicker() 11 } 12 13 // ピッカー設定 14 func createDatePicker(){ 15 datePicker.datePickerMode = UIDatePicker.Mode.date 16 datePicker.timeZone = NSTimeZone.local 17 datePicker.locale = Locale.current 18 workingDateTextFeild.inputView = datePicker 19 20 // 決定バーの生成 21 let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 35)) 22 let spacelItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) 23 let doneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(done)) 24 toolbar.setItems([spacelItem, doneItem], animated: true) 25 26 // インプットビュー設定 27 workingDateTextFeild.inputView = datePicker 28 workingDateTextFeild.inputAccessoryView = toolbar 29 } 30 31 // 決定ボタン押下 32 @objc func done() { 33 workingDateTextFeild.endEditing(true) 34 35 // 日付のフォーマット 36 let formatter = DateFormatter() 37 formatter.dateFormat = "yyyy年MM月dd日" 38 workingDateTextFeild.text = "(formatter.string(from: Date()))" 39 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

iOS 14 から UIDatePicker 周りに変更があってデフォルトが変更されてます。
下記を追加してみてください。

datePicker.preferredDatePickerStyle = .wheels

参考
https://qiita.com/torishima__/items/a53b0b3f7e1bc7c06106

投稿2021/10/16 20:54

TakuyaAso

総合スコア1361

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

abcdefgg

2021/10/17 03:30

ご教示いただいたコードを追加したところ以下のエラー文が表示されました。 'preferredDatePickerStyle' is only available in iOS 13.4 or newer そこで、バージョンチェックのコードを加え、以下のようにすることで解決できました! if #available(iOS 13.4, *) { datePicker.preferredDatePickerStyle = .wheels } 参考サイトまで記載いただきありがとうございます!大変助かりました!
TakuyaAso

2021/10/17 03:48

よかったです! iOS 13.4 からでしたね、すみません????‍♂️
abcdefgg

2021/10/17 12:23

とんでもないです! まだまだ調べることが下手で困っていたところ本当にありがとうございました。 また、お恥ずかしながら、同じ日付ピッカーのことで新規に質問を作成しています・・・ もしお時間ございましたら、こちらもご教示いただけますと幸いです。 https://teratail.com/questions/364886?modal=q-comp
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問