La limitation de UIDatePicker dates à partir d'un moment donné. Comme Entrée DOB à une restriction de limite d'âge
Dans mon code, j'ai un UITextField que lorsque l'utilisateur appuie sur ouvre un UIDatePicker pour permettre à l'utilisateur de facilement et efficacement, faites défiler jusqu'à leur Date De Naissance. Évidemment, nous ne voulons pas que le UIDatePicker pour faire défiler jusqu'à 2015, et plus qu'elle ne le fait actuellement. Comme c'est une Date De Naissance champ de saisie, j'aurais aussi besoin d'être en mesure de limiter les entrées de 16years+. Comment dois-je faire?
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
OriginalL'auteur Martin Q | 2015-07-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser dateByAddingUnit et soustraction de 16 ans à partir de la date actuelle pour définir la date maximale pour votre datePicker comme suit:
Xcode beta 8 6 • Swift 3
OriginalL'auteur Leo Dabus
UIDatePicker
a unmaximumDate
que vous pouvez définir. Simplement réglez le mode de la "Date" de l'IB et d'ajouter:datePicker.maximumDate = NSDate(timeIntervalSinceNow: -504911232)
-504911232 signifie que 16 avant aujourd'hui(comptabilité les années bissextiles)
Changé de compte pour environ 4 jours intercalaires
En plus de réinventer NSCalendar vous pouvez essayer tout ce que vous voulez, vous ne serez pas en mesure de le réparer. Secondes ne peut pas être utilisé si vous voulez décrire par rapport timespans qui sont plus d'une heure. Avec un bon calendrier, vous ne peut pas tenir compte de l'heure d'été, les années bissextiles ou ignoré jours (il y a au moins un pays qui a récemment sauté une journée entière).
Bon point. Je vais me souvenir que si jamais j'ai besoin de cela.
OriginalL'auteur BobRon