SwiftUI - .hourAndMinute 仅显示“00”和“30' 分钟”

lex*_*lex 3 datetimepicker swift swiftui

我希望我的标题足够不言自明。我有一个小时和分钟时间选择器,其中每一分钟都单独显示。我想要的是只显示“00”和“30”分钟。这是可以实现的吗?

我用于时间选择器的代码:

DatePicker("", selection: $selectedStartHour, displayedComponents: .hourAndMinute)
    .datePickerStyle(CompactDatePickerStyle())
    .labelsHidden()
    .clipped()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

kit*_*ian 7

发表的评论是错误的。您当然可以使用一行代码来完成此操作:

UIDatePicker.appearance().minuteInterval = 30
Run Code Online (Sandbox Code Playgroud)

问题是,现在整个应用程序中的所有时间选择器都将以 30 分钟为增量。为了缓解这个问题,您可以使用 .onAppear 和 .onDisappear,如下所示:

.onAppear {
    UIDatePicker.appearance().minuteInterval = 30
}

.onDisappear {
    UIDatePicker.appearance().minuteInterval = 1
}
Run Code Online (Sandbox Code Playgroud)

现在,当您的视图出现时,选择器将设置为 30 分钟增量。当视图消失时,它将设置回默认的 1 分钟增量。

现在,您可以轻松控制每个视图显示的时间增量。