我正在使用 Xcode 8.0 并在 iOS 10 上使用 Swift 3 进行构建。
我的 View Controller 中有 UIDatePicker,作为 socket 连接:
@IBOutlet weak var datePicker: UIDatePicker!
我正在尝试为其设置最大和最小日期。我正在使用的代码:
self.datePicker.minimumDate = Date()
self.datePicker.maximumDate = Date(timeIntervalSinceNow: 60*60*24*365)
self.datePicker.datePickerMode = UIDatePickerMode.date
不工作 - 日期选择器可以在时间上无限地前后移动。
问题是 - 我在这里错过了什么?
Best Answer-推荐答案 strong>
不幸的是,我昨天遇到了同样的问题,在搜索之后找不到解决方案。我想出了自己的最大/最小日期实现来代替内置日期,这并不理想,但它可以工作。
func datePickerDidChangeDate(sender: UIDatePicker) {
let maxDate = Date(timeIntervalSinceNow: 60*60*24*365)
let minDate = Date()
if sender.date.compare(minDate) == .orderedAscending || sender.date.compare(maxDate) == .orderedDescending {
// Date is invalid
sender.setDate(Date()) // Set selected date to now.
return
}
}
还要注意做整个 60*60*24*365 是一个坏主意,您应该改用 NSCalendar.dateByAddingComponents 但这完全是一个完全不同的问题。
关于ios - UIDatePicker 最小和最大日期不变,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40610708/
|