日期选择器显示范围年份

时间:2020-02-20 00:11:07

标签: ios swift xcode

当我选择选择器时,我只想显示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)
}

1 个答案:

答案 0 :(得分:0)

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

如果您想防止显示超出您时间范围的日期,恐怕您必须使用UIPickerView自己创建它,并用所需的许多组件填充它。

或者,因为这可能是一个常见问题,我想其他几个人为此情况创建了一个pod或spm,所以如果您不想重新发明这个轮子,请在Internet上查找替代方案。