Nel mio codice, ho un UITextField che quando l'utente tocca apre un UIDatePicker per consentire all'utente di scorrere facilmente e in modo efficiente fino alla data di nascita. Ovviamente, non vorremmo che UIDatePicker scorresse fino al 2015 e oltre come al momento. Dato che è un campo di inserimento Data di nascita, dovrei anche essere in grado di limitare le voci a 16 anni +. Come faccio a fare questo?Limitare le date UIDatePicker da un momento particolare. Come Input DOB ad un limite di età limitato
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
No, non significa che. 504489600 hanno 15 anni, 11 mesi e 25 giorni. Suggerimento: anni bisestili. Ed è per questo che non esegui calcoli sulla data con secondi. –
Cambiato per conto di circa 4 giorni bisestili – BobRon
Oltre a reinventare NSCalendar puoi provare quello che vuoi, non sarai in grado di risolverlo. I secondi non possono essere utilizzati se si desidera descrivere i tempi relativi che durano più di un'ora. Con un calendario corretto non è possibile tenere conto dell'ora legale, degli anni bisestili o dei giorni saltati (c'è almeno un paese che ha saltato di recente un'intera giornata). –