在countDownTimer模式下设置UIDatePicker的最大时间

问题描述 投票:-1回答:1

我是新手,我想让选择器选择通知的频率。我想将用户可以选择的最大数量设置为2个小时,但是我在做什么却没人知道这是否可行?

这是我所做的:

let minutePicker = UIDatePicker()
minutePicker.datePickerMode = .countDownTimer
minutePicker.minuteInterval = 10 //sets the interval of minutes.
minutePicker.countDownDuration = 30*60 //set starting value.
minutePicker.maximumDate = Date(timeInterval: 60*60*2, since: Date())
swift uidatepicker
1个回答
0
投票

您可以执行以下操作:

   let minutePicker = UIDatePicker()
    minutePicker.datePickerMode = .countDownTimer
    minutePicker.addTarget(self, action: #selector(respondToChanges(picker:)), for: .allEvents)
    minutePicker.minuteInterval = 10

    var components = DateComponents()
    components.minute = 30
    let date = Calendar.current.date(from: components)!
    minutePicker.setDate(date, animated: true)

然后,您必须创建一个responseToChanges方法。可能的实现如下所示:

@objc
func respondToChanges(picker: UIDatePicker) {
    if (picker.countDownDuration > 7200) { //countDownDuration has to be in seconds
        var components = DateComponents()
        components.hour = 2
        let date = Calendar.current.date(from: components)!
        picker.setDate(date, animated: true)
    }
}

文档说:“在倒数计时器模式中,最小和最大日期被忽略”。因此,使用我的解决方案,您可以将时间手动设置为2小时,每次用户选择2小时以上。

© www.soinside.com 2019 - 2024. All rights reserved.