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)