是否可以使用绑定设置SwiftUI DatePicker minimumDate?

是否可以使用绑定设置SwiftUI DatePicker minimumDate?,swiftui,Swiftui,我正在尝试使用@Binding和@State设置SwiftUI中日期选择器的最小日期值 我有三台步进机,一台几天,一台几小时,一台几分钟。这些用于设置日期组件的值 我想看到的是,当我使用步进器时,日期选择器调整到最短的日期和时间。这可能吗 我编辑了这篇文章并删除了所有代码示例,因为它们与解决方案无关。这些问题是由不推荐使用的日期选择器初始值设定项代码引起的。请参见下面的答案。这是解决方案。SwiftUI日期选择器中不推荐使用最短日期和最长日期。更改和解决方案发布在此处: 如果链接不起作用,下面是

我正在尝试使用@Binding和@State设置SwiftUI中日期选择器的最小日期值

我有三台步进机,一台几天,一台几小时,一台几分钟。这些用于设置日期组件的值

我想看到的是,当我使用步进器时,日期选择器调整到最短的日期和时间。这可能吗


我编辑了这篇文章并删除了所有代码示例,因为它们与解决方案无关。这些问题是由不推荐使用的日期选择器初始值设定项代码引起的。请参见下面的答案。

这是解决方案。SwiftUI日期选择器中不推荐使用最短日期和最长日期。更改和解决方案发布在此处:

如果链接不起作用,下面是示例

日期选择器不推荐使用初始值设定项 具有minimumDate和maximumDate的初始值设定项已消失。现在我们用ClosedRange、PartialRangeThrough和PartialRangeFrom初始化它

我们使用PartialRangeFrom作为minimumDate

DatePicker("Minimum Date",
    selection: $selectedDate,
    in: Date()...,
    displayedComponents: [.date])
我们使用PartialRangeThrough作为maximumDate

DatePicker("Maximum Date",
    selection: $selectedDate,
    in: ...Date(),
    displayedComponents: [.date])
如果要同时强制执行minimumDate和maximumDate,请使用ClosedRange

@State var selectedDate = Date()

var dateClosedRange: ClosedRange<Date> {
    let min = Calendar.current.date(byAdding: .day, value: -1, to: Date())!
    let max = Calendar.current.date(byAdding: .day, value: 1, to: Date())!
    return min...max
}

DatePicker(
    selection: $selectedDate,
    in: dateClosedRange,
    displayedComponents: [.hourAndMinute, .date],
    label: { Text("Due Date") }
)
@State var selectedDate=Date()
变量dateClosedRange:ClosedRange{
让min=Calendar.current.date(通过将:.day,值:-1添加到:date())!
让max=Calendar.current.date(通过添加:.day,值:1,到:date())!
返回最小值…最大值
}
日期选择器(
选择:$selectedDate,
在:dateClosedRange,
显示的组件:[.hourAndMinute,.date],
标签:{Text(“到期日”)}
)
在所有示例中,日期()都可以替换为日期类型的绑定