【问题标题】:Setting only specific months in UIDatePicker Swift 5在 UIDatePicker Swift 5 中仅设置特定月份
【发布时间】:2020-11-16 13:40:13
【问题描述】:

在我的项目中,我想应用条件,例如,用户只能选择距当前日期 3 个月的日期。

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

例如。 11 月就这么过去了,11 月 12 月 1 月应该显示在日期选择器中进行采摘。

我怎样才能做到这一点??

【问题讨论】:

    标签: ios swift xcode swift5 swiftui-datepicker


    【解决方案1】:

    你可以试试这样的:

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

    【讨论】:

    • 好的,我会尝试.....并且知道如何从日期选择器选择器中删除年/日/月列。
    • 嗨,谢谢这个作品。但是如果我想隐藏 3 之后的几个月,意味着只有 90 天的跨度应该是可见的
    • 不知道有没有办法在DatePicker中隐藏,但是你可以创建一个自定义的带有月和日的UIPickerView(你提供的内容,有两列)。
    • 请注意,上面将设置最大日期为未来 3 个月,但可能不完全是 90 天。如果您希望日期是未来 90 天,您可以更改上述计算来执行此操作。我将编辑我的答案以显示这两个选项。
    【解决方案2】:

    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,让用户只选择日期,而不是时间。

    我不知道如何删除年份选择器,尽管如果您选择的日期范围为 90 天,并且都在同一年,他们将无法选择当前年份以外的年份。

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

    Wonder 在评论中说,您可以使用 UIPickerView 创建自己的月份和日期选择器,但您需要添加逻辑来更改基于月份的天数,并排除当前月份的天数过去。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2016-03-09
      相关资源
      最近更新 更多