【问题标题】: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
  • 你能分享你的代码或截图吗?
  • 请发布您尝试过的代码。

标签: ios swift date datepicker


【解决方案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 来获得所需的行为(处理分钟以增加小时数)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多