W moim kodzie mam UITextField, który po kliknięciu użytkownika otwiera UIDatePicker, aby umożliwić użytkownikowi łatwe i wydajne przewijanie do ich daty urodzenia. Oczywiście nie chcemy, aby UIDatePicker przewijał do 2015 roku i tak jak obecnie. Ponieważ jest to pole wprowadzania daty urodzenia, musiałbym mieć możliwość ograniczenia wpisów do 16 lat +. Jak mam to zrobic?Ograniczanie UIDatePicker datuje się od określonego czasu. Takich jak wejście DOB do ograniczonego limitu wiekowego
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
Nie, to nie znaczy, że. 504489600 to 15 lat, 11 miesięcy i 25 dni. Podpowiedź: lata przestępne. I dlatego nie robisz dat obliczeń za pomocą sekund. –
Zmieniono to na około 4 dni przestępne – BobRon
Poza wynalezieniem NSCalendar możesz spróbować czegokolwiek, nie będziesz mógł tego naprawić. Sekund nie można użyć, jeśli chcesz opisać względny czas, który trwa dłużej niż godzinę. Przy odpowiednim kalendarzu nie można uwzględniać czasu letniego, lat przestępnych ani pominiętych dni (jest przynajmniej jeden kraj, który niedawno opuścił cały dzień). –