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 } } }
あなたの回答
tips
プレビュー