我当前的项目是一个计时器,它使用日期选择器来设置用户在计时器关闭之前想要的时间(例如1分钟,6小时和2分钟等)。问题在于日期选择器认为已设置的时间量。下面是我用来设置时间的代码。
@IBOutlet weak var datePicker: UIDatePicker!
var timeAmount:Double = 0
@IBAction func startButton() {
timeAmount = Double(datePicker.countDownDuration)
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeAmount, repeats: false)
}
在这里可以看到函数startButton将timeAmount的值设置为为日期选择器设置的时间量。然后将此timeAmount值用作本地通知中的时间。
问题是datePicker.countDownDuration永远不会正确。如果设置为一分钟,则timeAmount可能会返回99秒,62秒,67秒等值。这完全是随机的。
也许我并不完全理解.countDownDuration功能是如何工作的,但是从我读过的所有内容来看,这应该返回60秒的值。
非常感谢您对此事的任何想法和建议,谢谢。
答案 0 :(得分:2)
默认情况下,UIDatePicker将采用当前 second 值进行计算。
timeAmount = (number of minutes selected in picker * 60) + current time second value.
例如:
如果当前时间是13:40:25(下午1点40分25秒)并且您在日期选择器中选择了一分钟,则在这种情况下timeAmount的值为 85 。
timeAmount = (1*60) + 25
这将解决您的问题。