UIDatePicker, назначая максимальные и минимальные даты на основе сегодняшней даты

Если у меня есть UIDatePicker, и я хочу установить минимальный и максимальный диапазон дат, чтобы быть между тридцать лет назад и тридцать лет в будущем, как я настроил бы это?

39
задан cannyboy 17 June 2010 в 19:18
поделиться

1 ответ

Не тестировалось, но вы, вероятно, захотите что-то вроде этого.

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];

Обновление для Swift 4.1

let calendar = Calendar(identifier: .gregorian)
var comps = DateComponents()
comps.year = 30
let maxDate = calendar.date(byAdding: comps, to: Date())
comps.year = -30
let minDate = calendar.date(byAdding: comps, to: Date())
datePicker.maximumDate = maxDate
datePicker.minimumDate = minDate
80
ответ дан 27 November 2019 в 02:10
поделиться