当前位置: 首页 > 面试题库 >

限制UIDatePicker的日期始于特定时间。例如输入DOB到受限制的年龄限制

苏磊
2023-03-14
问题内容

在我的代码中,我有一个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())


 类似资料:
  • 视听年龄限制 部分内容(游戏或影像等)可能预先内建了视听限制。设定PSP™主机的视听年龄限制,可限制PSP™不得播放超过该限制等级的内容。除[关]外,PSP™主机共可设定为11种等级。 关 解除视听年龄限制 11~1 设定视听年龄限制的数字等级。数字愈小代表视听愈受局限。 随着PSP™主机和内容之视听年龄限制的组合,将决定可否播放。两者间的组合如下表。 范例:PSP™的视听年龄限制设定为[9]时,

  • 问题内容: 假设我有一个代码,要求用户提供一些输入,例如: 但是我想给用户60秒的时间限制,然后抛出一个异常(在这种情况下,我认为是)。我怎么做? 问题答案:

  • 我正在使用Pircbot创建一个IRC bot,它可以响应某些请求(例如“!time”提供本地时间)。我正在构建的功能之一是一个giveaway系统,从当前在线的用户中随机抽取一个用户,给他们一个奖品。 我想通过强制中奖者在中奖后30分钟内键入“!接受”来领取奖品来增强系统。然而,我希望bot仍然运行,这意味着我不能冻结整个线程30分钟等待一个消息。 我想做的几种方法对我来说有点太古怪了。 > 我

  • 问题内容: 我有一个交易,人员,交易日期,物品等数据库。每当一个人购买一件物品时,交易就存储在表格中,如下所示: 我想做的事情是找到从2012年1月1日(transactionDate)到2012年3月1日在14天内(可配置)或更短时间内多次购买相同ItemNumber的人(personNumber)。然后,我需要在报告中列出所有这些交易。 样本数据: 结果: 您将如何去做? 我已经尝试过这样做:

  • 问题内容: 我正在尝试创建一个限制用户输入的文本字段。我有这个代码: 它成功限制了输入。但是,当我尝试按键盘上的其他字符时,它将更改文本字段上的最后一个字符。有什么想法可以阻止吗?我知道其他人会说我应该使用Document(不记得了)来制作这种东西,但是我不能。我不知道如何在netbeans中做到这一点。请帮忙。 问题答案: 这是一种简单的方法:

  • 问题内容: 我正在使用Quartz-Scheduler执行重复性任务,但遇到了麻烦。在我的服务器端,我的用户想要指定一些日期范围,例如 From with in 到 说明: 从到但仅在之间运行作业 我在为其编写Cron表达式时遇到了麻烦,而且我的用户不是技术人员,所以我的用户希望我从两个时间戳值中自动创建Cron表达式。 请帮帮我。让我知道是否还有其他方法。 我在Google上看到了很多资源,但仍