我想将我的日期选择器设置为只允许选择偶数小时
Posted
技术标签:
【中文标题】我想将我的日期选择器设置为只允许选择偶数小时【英文标题】:I want to set my date picker to only allow even hour choices 【发布时间】:2021-06-19 15:45:29 【问题描述】:例如只允许下午 6:00、晚上 7:00,但不允许晚上 6:30 或晚上 10:20。
我已经研究过使用日期选择器属性picker.minuteInterval
,但这会将您限制在某些增量范围内,但不允许您做几个小时。
非常感谢任何有关此事的建议或信息。
【问题讨论】:
您需要对所选值进行后处理并将其向上或向下舍入到最接近的小时数,或者使用您自己的UIPickerView
你能分享你的代码或截图吗?
请发布您尝试过的代码。
【参考方案1】:
datepicker.minuteInterval = 30 //this is max
datepicker.date = Date().nearestEvenHourDate //initial date
@IBAction func datePickerValueChanged(_ sender: Any)
datepicker.date = datepicker.date.nearestEvenHourDate //selected date manipuated
extension Date
var nearestEvenHourDate: Date
var hours = Calendar.current.dateComponents([.hour], from: self).hour ?? 0
hours = hours % 2 == 0 ? hours : hours - 1
return Calendar.current.date(bySettingHour: hours, minute: 0, second: 0, of: self)!
使用nearestEvenHourDate 来获得所需的行为(处理分钟以增加小时数)
【讨论】:
以上是关于我想将我的日期选择器设置为只允许选择偶数小时的主要内容,如果未能解决你的问题,请参考以下文章