我在日期选择器中设置最小日期,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
datePicker.minimumDate = NSDate()
}
这确实可以防止用户回滚日期。用户可以回滚日期拨盘,但它只会快速返回到当前日期。问题是,当发生这种情况时,日期时间将设置为午夜,而不是任何和所有 future 更改的当前时间,并且它还会执行日期更改时运行的事件。当涉及到我的代码和 UI 中的 slider 时,这是一个问题。它认为日期改变了,但它没有改变,是的,它反弹了,但此时已经太晚了,假设日期改变了,我的代码就会运行。如何防止用户完全回滚拨号?
重现步骤:
1) 设置最短日期,如上所示。
2) 设置日期更改事件
3) 设置事件为 print(datePicker.date)
4) 向前滚动拨号
5) 将拨号盘向后滚动到当前日期之后。
6) 向前滚动拨号
请注意,从现在开始,时间将永久设置为午夜。
最佳答案
快速修复/解决方法是在日期更改事件函数中设置 datePicker.date = NSDate()。
关于swift - 可能的错误?最小日期 UIDatePicker Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680869/