仅在 UIDatePicker 中设置特定月份 Swift 5

Setting only specific months in UIDatePicker Swift 5

在我的项目中,我想应用这样的条件,用户可以 select 从当前日期起仅 3 个月。

即我想显示一个日期选择器,其中包含月份和日期,范围为 90 天。

例如。 November 就这样而已,November December January 应该显示在 Date picker 中以供挑选。

我怎样才能做到这一点?

UIDatePicker 具有 minimumDatemaximumDate 属性。使用它们来设置您希望允许用户输入的日期范围。


编辑:

@wonder 发布了计算未来 3 个月日期的代码:

futureDate = Calendar.current.date(byAdding: .month, value: 3, to: Date())

或者,如果需要,您可以在当前日期基础上增加 90

futureDate = Calendar.current.date(byAdding: .day, value: 90, to: Date())

datePickerMode 设置为 .date 让用户只选择日期,而不是时间。

我不知道如何删除年份 select 或者,尽管如果您 select 90 天的日期范围都属于同一年,他们将无法select 一年以外的年份。

(请注意,从 10 月开始,90 天的日期范围包括 2 个不同年份的日期,因此无论如何您都需要年份。)

正如 wonder 在评论中所说,您可以使用 UIPickerView 创建自己的月份和日期选择器,但您需要添加逻辑以根据月份更改天数,并排除当月的天数那是过去的事。

您可以尝试这样的操作:

datePicker.maximumDate = Calendar.current.date(byAdding: .month, value: 3, to: Date())