How to set Minimum time to appear as default in UIDatepicker everytime

前端 未结 5 699

In Datepicker i have set Min and Max time where uidatepicker can scroll for example i have set 3:00PM as minimum time and 8:00PM as maximum time , when i run the app i want

5条回答
  •  孤城傲影
    2020-12-11 13:09

    Updated for Swift 3 :

            let startHour: Int = 6
            let endHour: Int = 23
            let date1: NSDate = NSDate()
            let gregorian: NSCalendar = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)!
    
            let components: NSDateComponents = gregorian.components(([.day, .month, .year]), from: date1 as Date) as NSDateComponents
            components.hour = startHour
            components.minute = 0
            components.second = 0
            let startDate: NSDate = gregorian.date(from: components as DateComponents)! as NSDate
    
            components.hour = endHour
            components.minute = 0
            components.second = 0
            let endDate: NSDate = gregorian.date(from: components as DateComponents)! as NSDate
    
            timePicker.datePickerMode = .time
            timePicker.minimumDate = startDate as Date
            timePicker.maximumDate = endDate as Date
            timePicker.setDate(startDate as Date, animated: true)
            timePicker.reloadInputViews()
            timePicker.frame = CGRect(x: 0.0, y: (self.view.frame.height/2 + 60), width: self.view.frame.width, height: 150.0)
            timePicker.backgroundColor = UIColor.white
    //        timePicker.reloadInputViews()
            self.view.addSubview(timePicker)
            timePicker.addTarget(self, action: #selector(RoundTripViewController.startTimeDiveChanged), for: UIControlEvents.valueChanged)
    

提交回复
热议问题