Rit*_*tik 7 datepicker ios swift swiftui
日期封闭范围示例:
var dateClosedRange: ClosedRange<Date> {
let today = Calendar.current.date(byAdding: .minute, value: -1, to: Date())!
let seven = Calendar.current.date(byAdding: .day, value: 7, to: Date())!
return today...seven
}
Run Code Online (Sandbox Code Playgroud)
时间封闭范围示例:
var timeClosedRange: ClosedRange<Date> {
let min = Calendar.current.date(bySetting: .hour, value: 8, of: Date())!
let max = Calendar.current.date(bySetting: .hour, value: 20, of: Date())!
return min...max
}
Run Code Online (Sandbox Code Playgroud)
应用范围的示例:
DatePicker(selection: $scheduledStart, in: timeClosedRange) {
Text("Start Date")
}
Run Code Online (Sandbox Code Playgroud)
如果我输入dateClosedRange
,那么我可以选择指定天内的日期,但时间可以是 24 小时之间的任何时间。
如果我输入timeClosedRange
,那么我可以选择上午 8 点至晚上 8 点之间的时间,但我只能选择当前日期,而不能选择其他日期。
有什么方法可以将两个范围放入一个 DatePicker 中吗?
小智 0
您可以使用DateComponents
该实例来实现:
let dateAndTimeRange: ClosedRange<Date> = {
let calendar = Calendar.current
let startComponents = DateComponents(
year: 2020,
month: 1,
day: 1,
hour: 00,
minute: 00,
second: 00
)
let endComponents = DateComponents(
year: 2020,
month: 12,
day: 31,
hour: 23,
minute: 59,
second: 59
)
return calendar.date(from:startComponents)!
...
calendar.date(from:endComponents)!
}()
Run Code Online (Sandbox Code Playgroud)