首页 > 解决方案 > 日期选择器显示范围年份

问题描述

当我选择我的选择器时,我只想显示从 1900 到 2150 的年份 我的代码有什么问题或缺少什么?

@objc func dateChanged(datePicker: UIDatePicker,field: HoshiTextField){
    let dateFormatter =  DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"
    let min = dateFormatter.date(from: "01-01-1900")
    let max = dateFormatter.date(from: "01-01-2150")
    datePicker.minimumDate = min
    datePicker.maximumDate = max
    if  self.fechaTxt.isFirstResponder{
        self.fechaTxt.text = dateFormatter.string(from: datePicker.date)
    }
    self.view!.endEditing(true)
}

标签: iosswiftxcode

解决方案


设置 UIDatePicker 的最小和最大日期时,其他日期仍然可见,只是无法选择。因此,如果您尝试滚动到 1800 年,您的选择器将反弹到您的 minimumValue 1900。

如果您想阻止我们显示超出您的时间范围的日期,恐怕您必须自己创建它,使用 UIPickerView,并用您想要的任意数量的组件填充它。

或者,由于这可能是一个常见问题,我猜其他几个人已经为这种情况创建了一个 pod 或 spm,所以如果你不想重新发明这个轮子,请在互联网上寻找替代方案。


推荐阅读