Limitar las fechas de UIDatePicker desde un momento particular. Como Entrada DOB a un límite de edad restringido

En mi código, tengo un UITextField que cuando el usuario toca abre un UIDatePicker para permitir al usuario desplazarse fácil y eficientemente a su fecha de nacimiento. Obviamente, no desearíamos que UIDatePicker se desplazara hasta 2015 y más de lo que 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 +. ¿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 

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

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

Xcode 8 beta 6 • Swift 3

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

UIDatePicker tiene un maximumDate que puede establecer. Simplemente configure el modo como “Fecha” en IB y agregue: datePicker.maximumDate = NSDate(timeIntervalSinceNow: -504911232)

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