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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

0回答

1120閲覧

ios14に対応したDatepickerの使い方

Tommy2020

総合スコア18

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2020/10/07 13:03

ios14になりSwiftでDatepickerが大きく変わりました。
PGの修正を行っていますが、なかなかしたいことができません。

この画面では、出発日時・出発時間・到着時間の3つをDatepickerを使って選択します。

したいこと
①日付選択で、表示される日付を○○○○年○○月○○日にしたい、選択の際の曜日を日本語にしたい
②日付選択を、本日以降にしたい
③出発時間指定を24時間表記にしたい
④出発時間指定を現在時刻より後にしかできなくしたい
⑤出発時間指定を12時前にしかできなくしたい
⑥到着時間指定を出発時間指定+5時間より後にしかできなくしたい
⑦到着時間指定を23自前にしかできなくしたい
⑧日付選択、出発時間指定、到着時間指定の順序でしかできなくしたい
⑨3つの表示を、背景:白、文字:黒にしたい
⑩3つ選択しないとNextButtonを押せなくしたい
11リセットボタンで3つ全て現在に合わせる

以上がしたいことです。
一つでもご存知でしたら教えていただきたいです・・・・(´;ω;`)

イメージ説明

// // DesideViewController.swift // Test00 // // // // import UIKit class DesideDateViewController: UIViewController{ @IBOutlet weak var nextButton: UIButton! @IBOutlet weak var resetButton: UIButton! @IBOutlet weak var decidedDatePicker: UIDatePicker! @IBOutlet weak var dapatureTimeDatePicker: UIDatePicker! @IBOutlet weak var arriveTimeDatePicker: UIDatePicker! let format = DateFormatter() let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate override func viewDidLoad() { super.viewDidLoad() dapatureTimeDatePicker.locale = Locale(identifier: "ja_JP") dapatureTimeDatePicker.locale = Locale(identifier: "ja_JP") nextButton.layer.cornerRadius = 20 nextButtonIsEnable() nextButton.commonInit() } @IBAction func tappedDatePicker(_ sender: Any) { let date = decidedDatePicker.date let dateString = date.toString(dateFormat: "yyyy年M月d日") appDelegate.dateInfoArray[0] = dateString print(appDelegate.dateInfoArray[0]) nextButtonIsEnable() } @IBAction func tappedDapatureTime(_ sender: Any) { format.dateFormat = "HH:mm" let time = dapatureTimeDatePicker.date let timeString = format.string(from: time) appDelegate.dateInfoArray[1] = timeString print(appDelegate.dateInfoArray[1]) nextButtonIsEnable() } @IBAction func tappedArriveTime(_ sender: Any) { format.dateFormat = "HH:mm" let time = dapatureTimeDatePicker.date let timeString = format.string(from: time) appDelegate.dateInfoArray[2] = timeString print(appDelegate.dateInfoArray[2]) nextButtonIsEnable() } @IBAction func tappedResetButton(_ sender: Any) { appDelegate.dateInfoArray = ["","",""] nextButtonIsEnable() } @IBAction func tappedNextButton(_ sender: Any) { let checkResult = checkTime() print(checkResult) if checkResult { let vc = self.storyboard?.instantiateViewController(withIdentifier: "DesideHotelViewController") as! DesideHotelViewController vc.modalPresentationStyle = .fullScreen self.present(vc, animated: false, completion: nil) } } func checkTime() -> Bool { // dateFormatter.dateFormat = "HH:mm" // let dapatureTime = dateFormatter.date(from: appDelegate.dateInfoArray[1])! // let returnTime = dateFormatter.date(from: appDelegate.dateInfoArray[2])! // let sixAm = dateFormatter.date(from: "6:00")! // let fourteenPm = dateFormatter.date(from: "14:00")! // let twentyTwoPm = dateFormatter.date(from: "22:00")! // let timeLag = returnTime.minutes (from: dapatureTime) var check = true // // if dapatureTime < sixAm { // check = false // } // if returnTime > twentyTwoPm { // check = false // } // if dapatureTime > fourteenPm { // check = false // } // if timeLag < 120 { // if timeLag < 0 { // }else{ // } // check = false // } return check } func nextButtonIsEnable(){ if appDelegate.dateInfoArray[0].isEmpty || appDelegate.dateInfoArray[1].isEmpty || appDelegate.dateInfoArray[2].isEmpty { nextButton.isEnabled = false nextButton.alpha = 0.6 }else{ nextButton.isEnabled = true nextButton.alpha = 1 } } }

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

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

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

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

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

TsukubaDepot

2020/10/08 00:10

この質問ですが、挙げられた11項目全てはiOS14への変更と直接関係あるのでしょうか。 コードを拝見する限り、iOS13でも実装できてない部分が大半に見えますが、いかがでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問