2016-11-15 57 views
2

我使用的Xcode 8.0和建築在iOS 10夫特3.的UIDatePicker min和max日期不改變

我的UIDatePicker在我的視圖控制器,連接作爲一個出口:

@IBOutlet weak var datePicker: UIDatePicker! 

我試圖爲它設置最大和最小日期。我正在使用的代碼:

self.datePicker.minimumDate = Date() 
self.datePicker.maximumDate = Date(timeIntervalSinceNow: 60*60*24*365) 
self.datePicker.datePickerMode = UIDatePickerMode.date 

不工作 - 日期選擇器可以無限地前後移動。

問題是 - 我在這裏錯過了什麼?

+0

你在哪裏設置這些限制? ('init','viewDidLoad'等) – NSDmitry

回答

0

我不幸昨天在字面上遭受了同樣的問題,搜索後找不到解決方案。我想出了自己的最大/最小日期實現來代替內置的日期,這不是理想的,但它的工作原理。

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但這是一個完全不同的問題完全。