如何为日期选择器 swift 4 设置特定的最小日期?

Peg*_*ggy 4 uidatepicker swift

在 swift 4 中,我有两个 textFields 来设置开始日期和结束日期,并且想要设置“结束日期”选择器默认为“开始日期”日期并限制设置较早的日期。

我可以从选择器 (datePick.date) 和参考中保存开始日的值如何为日期选择器 swift 4 设置最大日期?来设置datePick.minimumDate = startDay

选择器的默认日期是“开始日期”,但它可以设置更早的日期。我不知道如何更改以下代码来限制它。

var sevenDaysfromNow: Date {
   return (Calendar.current as NSCalendar).date(byAdding: .day, value: 7, to: Date(), options: [])!
}
Run Code Online (Sandbox Code Playgroud)

是否可以为日期选择器 swift 4 设置特定的最小日期?

[更新尝试使用罗伊伯纳尔代码]

func creatEndPicker(){
//...
let daysToSubtract = 10
        var dateComponent = DateComponents()
        dateComponent.day = daysToSubtract
        let earlierDate = Calendar.current.date(byAdding: dateComponent, to: start_Day)
        datePick.maximumDate = earlierDate 
        datePick.minimumDate = startDay 
}
Run Code Online (Sandbox Code Playgroud)

小智 8

您可以像 Andy 告诉您的那样以编程方式执行此操作,例如使用选择器视图委托,您可以将下几行代码放在您的 viewDidLoad 中或您想要使用该功能的任何位置:

override func viewDidLoad() {
        super.viewDidLoad()
        myDatePicker.datePickerMode = UIDatePickerMode.date // use date only
        let currentDate = NSDate()  //get the current date
        myDatePicker.minimumDate = currentDate  //set the current date/time as a minimum
        myDatePicker.date = currentDate //defaults to current time but shows how to use it.
    }
Run Code Online (Sandbox Code Playgroud)