在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
}
答案 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,就可以在属性检查器右侧的面板中选中“最小日期”并在那里设置最小日期。我确信这也可以通过编程方式完成,您可能需要使用选择器视图委托,但是在情节提要中可以做到这一点。