私のコードには、ユーザーがタップするとUIDatePickerが開き、ユーザーが生年月日まで簡単かつ効率的にスクロールできるようにするUITextFieldがあります。明らかに、現在のようにUIDatePickerを2015年以上にスクロールさせたくはありません。生年月日入力フィールドなので、入力を16年以上に制限できる必要もあります。どうすればよいですか?
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
DateByAddingUnitを使用し、現在の日付から16年を引くと、次のようにdatePickerの最大日付を設定できます。
datePicker.maximumDate = NSCalendar.currentCalendar().dateByAddingUnit(.Year, value: -16, toDate: NSDate(), options: [])
Xcode10.2.1•Swift 5
datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date())