如何为日期选择器Swift 4设置一个最小日期,特别是日期?

时间:2018-08-02 14:58:49

标签: swift uidatepicker

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

我可以从选择器(datePick.date)中保存起始日的值,并引用How to set a maximum date for date picker swift 4?来设置datePick.minimumDate = startDay

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

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

是否可以为日期选择器swift 4设置一个最低日期,特别是?

[更新尝试使用Roy Bernal代码]

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 
}

2 个答案:

答案 0 :(得分:1)

您可以像Andy告诉您的那样,以编程器的方式进行操作,例如,使用picker视图委托,您可以在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.
    }

答案 1 :(得分:0)

在情节提要中,一旦屏幕上显示了UIDatePicker,就可以在属性检查器右侧的面板中选中“最小日期”并在那里设置最小日期。我确信这也可以通过编程方式完成,您可能需要使用选择器视图委托,但是在情节提要中可以做到这一点。