如何禁用未来日期而不是在swift 2中滚动datepicker

时间:2016-04-28 11:48:24

标签: ios swift uidatepicker

当用户选择当前日期而非未来日期而不是在swift 2.0中滚动日期选择器时,我正在使用datepicker

override func viewDidLoad() {
    let datePickerView:UIDatePicker = UIDatePicker()
    datePickerView.datePickerMode = UIDatePickerMode.Date
    sender.inputView = datePickerView
    //datePickerView.minimumDate = datePickerView.date
    datePickerView.maximumDate = datePickerView.date

    datePickerView.addTarget(self, action: #selector(BookAppointmentView.datePickerValueChanged(_:)), forControlEvents: UIControlEvents.ValueChanged)

func datePickerValueChanged(sender:UIDatePicker) {

    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"

    DatePickerField.text = dateFormatter.stringFromDate(sender.date)

}

3 个答案:

答案 0 :(得分:4)

使用datepicker的此maximumdate属性。 maximumdate将始终是当前日期。

let DatePicker = UIDatePicker()
DatePicker.maximumDate = NSDate()

修改  你做错了。

// DatePicker.maximumDate = DatePicker.date //This is a wrong approach. It will not allow you from scrolling

DatePicker.maximumDate = NSDate() // This will avoid you from setting a future date.

答案 1 :(得分:1)

这很简单。只是nsdatepicker中的maximumDate属性作为今天的日期

self.datePicker.maximumDate = NSDate()

答案 2 :(得分:0)

尝试以下方法:

datePickerView.maximumDate 更改为 NSDate.date

它不允许选择未来的日期。即,你可以选择的最长日期是今天。

希望有所帮助......