Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftUI:如何设置时间选择器&x27;什么范围能容纳午夜?_Ios_Xcode_Swiftui_Datepicker_Timepicker - Fatal编程技术网

Ios SwiftUI:如何设置时间选择器&x27;什么范围能容纳午夜?

Ios SwiftUI:如何设置时间选择器&x27;什么范围能容纳午夜?,ios,xcode,swiftui,datepicker,timepicker,Ios,Xcode,Swiftui,Datepicker,Timepicker,我正在使用SwiftUI 2,并使用带有显示组件的日期选择器:.hourAndMinute 我想允许用户选择晚上10点到凌晨2点之间的任何时间。因此,我要使用的时间范围包含午夜 不幸的是,当我为日期选择器提供此时间范围时,它只允许我选择晚上10:00到晚上11:59之间的时间: @State private var date = Calendar.current.date(bySettingHour: 22, minute: 0, second: 0, of: Date())! let star

我正在使用SwiftUI 2,并使用带有
显示组件的
日期选择器:.hourAndMinute

我想允许用户选择晚上10点到凌晨2点之间的任何时间。因此,我要使用的时间范围包含午夜

不幸的是,当我为
日期选择器提供此时间范围时,它只允许我选择晚上10:00到晚上11:59之间的时间:

@State private var date = Calendar.current.date(bySettingHour: 22, minute: 0, second: 0, of: Date())!
let startDate = Calendar.current.date(bySettingHour: 22, minute: 0, second: 0, of: Date())!

...

DatePicker("", selection: $date, in: startDate...Calendar.current.date(byAdding: .hour, value: 4, to: startDate)!, displayedComponents: .hourAndMinute)
换言之,只能选择午夜之前的时间,尽管提供的时间范围也包含0 am到2 am(第二天的)


如何解决这个问题?

通过删除
显示的组件
,一切似乎都按预期运行

如果您的目标是选择晚上10点到凌晨2点之间的任何时间,这意味着今天晚上10点到明天凌晨2点,那么仅显示小时和分钟可能会令人困惑

DatePicker("", selection: $date, in: startDate...Calendar.current.date(byAdding: .hour, value: 4, to: startDate)!)

删除
显示组件

Hi Cédric,我很清楚这种可能性。但是,我想让我的应用程序的用户能够在接下来的4小时内选择任何时间点。因此,如果是晚上10点,用户应该能够轻松地选择晚上10点到凌晨2点之间的任何时间,而不必担心一天。我不认为这会让人困惑。