首页 > 解决方案 > Swift 3 以编程方式设置 Datepicker 的日期范围

问题描述

我想以编程方式创建一个日期选择器,范围从今天到 6 天后,例如今天,7/14,... 7/20。

代码如下。

self.datePickerView = UIDatePicker(frame: CGRect(x: 0, y: 50, width: UIScreen.main.bounds.width, height: 180))

if let datePickerView = self.datePickerView {
    let currentDate: Date = Date()

     datePickerView.calendar = NSCalendar.current
     datePickerView.timeZone = NSCalendar.current.timeZone

     var beginComponents = DateComponents()
     beginComponents.day = 0
     datePickerView.minimumDate = Calendar.current.date(byAdding: beginComponents, to: currentDate)

     var endComponents = DateComponents()
     endComponents.day = 6
     datePickerView.maximumDate = Calendar.current.date(byAdding: endComponents, to: currentDate)

     dateSelectorView.addSubview(datePickerView)
}

日期选择器不仅显示 7 天,还显示过去日期(例如 7/12)和未来日期(例如 7/21)。有什么解决方案可以只显示 7 天吗?

非常感谢提前!!!

标签: swiftdatepickermaxminimum

解决方案


    var datePicker: UIDatePicker = UIDatePicker()
    datePicker?.datePickerMode = .date
    datePicker?.minimumDate = Date() // this to set the start date today
    //this to set the date range you can change " byAdding: .year " to "byAdding: .month" if you went the range by month or to "byAdding: .day"
    let nextDays = Calendar.current.date(byAdding: .year, value: 14, to: Date()) 
    datePicker?.maximumDate = nextDays ?? Date() // this to set the maximum date

推荐阅读