从特定时间限制 UIDatePicker 日期。例如输入 DOB 以限制年龄限制
Limiting UIDatePicker dates from a particular time. Such as Input DOB to a restricted age limit
在我的代码中,我有一个 UITextField,当用户点击它时会打开一个 UIDatePicker,使用户能够轻松高效地滚动到他们的出生日期。显然,我们不希望 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: [])
Xcode 10.2.1 • Swift 5
datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date())
UIDatePicker
有一个 maximumDate
可以设置。只需在 IB 中将模式设置为 "Date" 并添加:
datePicker.maximumDate = NSDate(timeIntervalSinceNow: -504911232)
-504911232表示今天前16(闰年)
在我的代码中,我有一个 UITextField,当用户点击它时会打开一个 UIDatePicker,使用户能够轻松高效地滚动到他们的出生日期。显然,我们不希望 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: [])
Xcode 10.2.1 • Swift 5
datePicker.maximumDate = Calendar.current.date(byAdding: .year, value: -16, to: Date())
UIDatePicker
有一个 maximumDate
可以设置。只需在 IB 中将模式设置为 "Date" 并添加:
datePicker.maximumDate = NSDate(timeIntervalSinceNow: -504911232)
-504911232表示今天前16(闰年)