Swift UIDatePicker ограничивает будущий год, а не месяц и дату - PullRequest
0 голосов
/ 20 сентября 2018

datePicker.maximumDate = Date()

Отключит будущую дату. Я хочу ограничить только будущий год. Пользователь может выбрать будущий месяц и дату.Как это сделать. Любая помощь будет оценена.

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Получить текущую дату и извлечь из нее год.(Используйте функцию календаря date(from:).) Создайте DateComponents для 31 декабря этого года.Используйте это, чтобы создать дату.Сделать максимальную дату для выбора даты.Это позволит пользователю выбирать любую дату в текущем году, но не продвигать год.

0 голосов
/ 20 сентября 2018

Я считаю, что это то, что вы хотите:

let picker = UIDatePicker()
let calendar = Calendar.current
let currentYear = calendar.component(.year, from: Date())
guard let maximumDate = calendar.date(from: DateComponents(year: currentYear + 1))?.addingTimeInterval(-1) else {
    fatalError("Couldn't get next year")
}
picker.maximumDate = maximumDate
print(picker.maximumDate ?? "")

Максимальная дата должна быть December 31st, 2018 at 23:59:59 в вашем средстве выбора даты.

0 голосов
/ 20 сентября 2018

Вы можете ограничить UIDatePicker разрешением только будущих дат в текущем году, вы можете создать объект Date, соответствующий началу следующего года, и использовать его в качестве maximumDate.

let thisYear = Calendar.current.component(.year, from: Date())
datePicker.maximumDate = Calendar.current.date(from: DateComponents(year: thisYear+1))
.
...