xcode swift nsdate uidatepicker

xcode - Limitar las fechas de UIDatePicker de un momento particular. Tal como Entrada DOB a un límite de edad restringido



swift nsdate (2)

Puede usar dateByAddingUnit y restar 16 años de la fecha actual para establecer la fecha máxima para su datePicker de la siguiente manera:

datePicker.maximumDate = NSCalendar.currentCalendar().dateByAddingUnit(.Year, value: -16, toDate: NSDate(), options: [])

Xcode 10.2.1 • Swift 5

datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date())

En mi código, tengo un UITextField que cuando el usuario toca abre un UIDatePicker para permitir que el usuario se desplace de manera fácil y eficiente a su Fecha de nacimiento. Obviamente, no quisiéramos que el UIDatePicker se desplazara hasta 2015 y más como lo hace actualmente. Como es un campo de entrada de Fecha de nacimiento, también necesitaría poder limitar las entradas a 16 años o más. ¿Cómo hago esto?

class SignUpViewController: UIViewController, UITextFieldDelegate { var datePicker:UIDatePicker! @IBOutlet weak var dateTextField: UITextField! override func viewDidLoad() { super.viewDidLoad() // UI DATE PICKER SETUP var customView:UIView = UIView(frame: CGRectMake(0, 100, 320, 160)) customView.backgroundColor = UIColor.clearColor() datePicker = UIDatePicker(frame: CGRectMake(0, 0, 320, 160)) datePicker.datePickerMode = UIDatePickerMode.Date customView.addSubview(datePicker) dateTextField.inputView = customView var doneButton:UIButton = UIButton (frame: CGRectMake(100, 100, 100, 44)) doneButton.setTitle("Done", forState: UIControlState.Normal) doneButton.addTarget(self, action: "datePickerSelected", forControlEvents: UIControlEvents.TouchUpInside) doneButton.backgroundColor = UIColor .grayColor() dateTextField.inputAccessoryView = doneButton


UIDatePicker tiene una fecha maximumDate que puede establecer. Simplemente configure el modo en "Fecha" en IB y agregue: datePicker.maximumDate = NSDate(timeIntervalSinceNow: -504911232)

-504911232 significa 16 antes de hoy (años bisiestos contables)