日期选择器最小日期和分钟间隔视觉错误
Date Picker minimum date and minute interval visual error
我有一个 UIDatePicker
并设置了最小日期和分钟间隔,但是在选择日期时出现视觉错误。最小分钟是可选择的,但以不可选择的灰色显示。
我的代码:
@IBOutlet weak var datePicker: UIDatePicker!
override func viewDidLoad() {
super.viewDidLoad()
datePicker.preferredDatePickerStyle = .wheels
datePicker.minuteInterval = 5
datePicker.minimumDate = Date(timeIntervalSinceNow: 7200) // 7200 is equal to 2 hours
}
截图:
我认为日期选择器有些混乱,因为最短日期不是五分钟的倍数。例如,如果您在 12:34 打开应用程序,那么 Date(timeIntervalSinceNow: 7200)
将变为 14:34,并且与日期选择器上的任何日期都不对应,这可能就是为什么像这样表现得很奇怪。不过我认为不是这个意思。
无论如何,如果您总是给它一个 5 分钟的倍数(或任何 minuteInterval
的日期),那么它将按预期工作。
根据您对所需行为的描述,如果当前分钟部分不能被 5 整除,您似乎想要找到下一个五分钟标记,然后加上 2 小时。你可以这样做:
let calendar = Calendar.current
let now = Date()
let currentMinute = calendar.component(.minute, from: now)
let mod = currentMinute % 5
let minutesUntilNextMultipleOf5 = mod == 0 ? mod : 5 - mod
let minDate = calendar.date(byAdding:
DateComponents(hour: 2, minute: minutesUntilNextMultipleOf5),
to: now)
datePicker.minimumDate = minDate
我有一个 UIDatePicker
并设置了最小日期和分钟间隔,但是在选择日期时出现视觉错误。最小分钟是可选择的,但以不可选择的灰色显示。
我的代码:
@IBOutlet weak var datePicker: UIDatePicker!
override func viewDidLoad() {
super.viewDidLoad()
datePicker.preferredDatePickerStyle = .wheels
datePicker.minuteInterval = 5
datePicker.minimumDate = Date(timeIntervalSinceNow: 7200) // 7200 is equal to 2 hours
}
截图:
我认为日期选择器有些混乱,因为最短日期不是五分钟的倍数。例如,如果您在 12:34 打开应用程序,那么 Date(timeIntervalSinceNow: 7200)
将变为 14:34,并且与日期选择器上的任何日期都不对应,这可能就是为什么像这样表现得很奇怪。不过我认为不是这个意思。
无论如何,如果您总是给它一个 5 分钟的倍数(或任何 minuteInterval
的日期),那么它将按预期工作。
根据您对所需行为的描述,如果当前分钟部分不能被 5 整除,您似乎想要找到下一个五分钟标记,然后加上 2 小时。你可以这样做:
let calendar = Calendar.current
let now = Date()
let currentMinute = calendar.component(.minute, from: now)
let mod = currentMinute % 5
let minutesUntilNextMultipleOf5 = mod == 0 ? mod : 5 - mod
let minDate = calendar.date(byAdding:
DateComponents(hour: 2, minute: minutesUntilNextMultipleOf5),
to: now)
datePicker.minimumDate = minDate