奇怪的日期选择器行为 Xcode、swift 3
Strange date picker behaviour Xcode, swift 3
我当前的项目是一个计时器,它使用日期选择器来设置用户在计时器关闭前想要的时间量(比如 1 分钟、6 小时和两分钟等)。问题在于日期选择器认为已设置的时间量。下面是我用来设置时间的代码。
@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 可能 return 99 秒、62 秒、67 秒等值。它完全是随机的。
也许我不完全理解 .countDownDuration 功能的工作原理,但是根据我阅读的所有内容,这应该 return 为 60 秒的值。
如有任何想法和建议,我们将不胜感激,谢谢。
默认情况下,UIDatePicker 将采用当前的秒 值进行计算。
timeAmount = (number of minutes selected in picker * 60) + current time second value.
例如:
如果当前时间是 13:40:25(下午 1 点 40 分 25 秒)并且您在日期选择器中 select 编辑了一分钟,则在这种情况下 timeAmount 的值为 85.
timeAmount = (1*60) + 25
这将解决您的问题。
转到您的 Storyboard 和 select UIDatapicker。导航到属性检查器中的日期选项。
单击下拉菜单并将其从 当前日期 更改为 自定义。
您将看到一个新的文本字段,将当前时间作为自定义日期。
只需将第二个字段更改为 00。
运行 App 现在。现在它会将 0 作为秒的值,您将能够根据您在日期选择器中选择的时间正确地看到秒值。
希望这能解决您的问题。
我当前的项目是一个计时器,它使用日期选择器来设置用户在计时器关闭前想要的时间量(比如 1 分钟、6 小时和两分钟等)。问题在于日期选择器认为已设置的时间量。下面是我用来设置时间的代码。
@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 可能 return 99 秒、62 秒、67 秒等值。它完全是随机的。
也许我不完全理解 .countDownDuration 功能的工作原理,但是根据我阅读的所有内容,这应该 return 为 60 秒的值。
如有任何想法和建议,我们将不胜感激,谢谢。
默认情况下,UIDatePicker 将采用当前的秒 值进行计算。
timeAmount = (number of minutes selected in picker * 60) + current time second value.
例如:
如果当前时间是 13:40:25(下午 1 点 40 分 25 秒)并且您在日期选择器中 select 编辑了一分钟,则在这种情况下 timeAmount 的值为 85.
timeAmount = (1*60) + 25
这将解决您的问题。
转到您的 Storyboard 和 select UIDatapicker。导航到属性检查器中的日期选项。
单击下拉菜单并将其从 当前日期 更改为 自定义。
您将看到一个新的文本字段,将当前时间作为自定义日期。
只需将第二个字段更改为 00。
运行 App 现在。现在它会将 0 作为秒的值,您将能够根据您在日期选择器中选择的时间正确地看到秒值。
希望这能解决您的问题。